Browse Source

May 16 : [UPDT] Updated 'odoo_website_helpdesk'

dependabot/npm_and_yarn/odoo_website_helpdesk/static/src/cdn/minimist-1.2.8
AjmalCybro 2 years ago
parent
commit
5a4d9b0c64
  1. 4
      odoo_website_helpdesk/README.rst
  2. 1
      odoo_website_helpdesk/__init__.py
  3. 32
      odoo_website_helpdesk/__manifest__.py
  4. 25
      odoo_website_helpdesk/controller/__init__.py
  5. 271
      odoo_website_helpdesk/controller/helpdesk_website.py
  6. 62
      odoo_website_helpdesk/controller/portal.py
  7. 44
      odoo_website_helpdesk/controller/ticket_group_by.py
  8. 14
      odoo_website_helpdesk/controller/ticket_search.py
  9. 138
      odoo_website_helpdesk/controller/website_form.py
  10. 121
      odoo_website_helpdesk/data/rating_template.xml
  11. 79
      odoo_website_helpdesk/data/ticket_auto_close.xml
  12. 8
      odoo_website_helpdesk/data/ticket_stage_data.xml
  13. 21
      odoo_website_helpdesk/data/ticket_type.xml
  14. 6
      odoo_website_helpdesk/doc/RELEASE_NOTES.md
  15. 837
      odoo_website_helpdesk/i18n/ar_SY.po
  16. 837
      odoo_website_helpdesk/i18n/de_CH.po
  17. 836
      odoo_website_helpdesk/i18n/es_AR.po
  18. 837
      odoo_website_helpdesk/i18n/fr_BE.po
  19. 837
      odoo_website_helpdesk/i18n/uk_UA.po
  20. 837
      odoo_website_helpdesk/i18n/zh_CN.po
  21. 837
      odoo_website_helpdesk/i18n/zh_HK.po
  22. 4
      odoo_website_helpdesk/models/__init__.py
  23. 30
      odoo_website_helpdesk/models/categories.py
  24. 52
      odoo_website_helpdesk/models/heldesk_team.py
  25. 203
      odoo_website_helpdesk/models/helpdesk.py
  26. 33
      odoo_website_helpdesk/models/mail_compose.py
  27. 64
      odoo_website_helpdesk/models/res_config.py
  28. 113
      odoo_website_helpdesk/report/helpdesk_ticket_report_template.xml
  29. 21
      odoo_website_helpdesk/security/ir.model.access.csv
  30. 114
      odoo_website_helpdesk/security/security_groups.xml
  31. BIN
      odoo_website_helpdesk/static/description/assets/screenshots/Screenshot3.png
  32. 10
      odoo_website_helpdesk/static/src/cdn/.browserslistrc
  33. 5
      odoo_website_helpdesk/static/src/cdn/.deepsource.toml
  34. 12
      odoo_website_helpdesk/static/src/cdn/.editorconfig
  35. 25
      odoo_website_helpdesk/static/src/cdn/.eslintrc
  36. 1
      odoo_website_helpdesk/static/src/cdn/.github/CODEOWNERS
  37. 72
      odoo_website_helpdesk/static/src/cdn/.github/workflows/codeql-analysis.yml
  38. 43
      odoo_website_helpdesk/static/src/cdn/.github/workflows/github-release-publish.yml
  39. 2
      odoo_website_helpdesk/static/src/cdn/.gitignore
  40. 3
      odoo_website_helpdesk/static/src/cdn/.vscode/settings.json
  41. 362
      odoo_website_helpdesk/static/src/cdn/CHANGELOG.md
  42. 220
      odoo_website_helpdesk/static/src/cdn/README.md
  43. 12
      odoo_website_helpdesk/static/src/cdn/babel.config.json
  44. 23
      odoo_website_helpdesk/static/src/cdn/bower.json
  45. 9
      odoo_website_helpdesk/static/src/cdn/docs.bash
  46. BIN
      odoo_website_helpdesk/static/src/cdn/docs/images/Thumbs.db
  47. BIN
      odoo_website_helpdesk/static/src/cdn/docs/images/body-bg.jpg
  48. BIN
      odoo_website_helpdesk/static/src/cdn/docs/images/download-button.png
  49. BIN
      odoo_website_helpdesk/static/src/cdn/docs/images/github-button.png
  50. BIN
      odoo_website_helpdesk/static/src/cdn/docs/images/header-bg.jpg
  51. BIN
      odoo_website_helpdesk/static/src/cdn/docs/images/highlight-bg.jpg
  52. BIN
      odoo_website_helpdesk/static/src/cdn/docs/images/sidebar-bg.jpg
  53. 665
      odoo_website_helpdesk/static/src/cdn/docs/index.html
  54. 102
      odoo_website_helpdesk/static/src/cdn/docs/javascripts/jquery.sumoselect.min.js
  55. 1
      odoo_website_helpdesk/static/src/cdn/docs/javascripts/main.js
  56. 1
      odoo_website_helpdesk/static/src/cdn/docs/params.json
  57. 494
      odoo_website_helpdesk/static/src/cdn/docs/select_responsive.html
  58. 226
      odoo_website_helpdesk/static/src/cdn/docs/stylesheets/print.css
  59. 69
      odoo_website_helpdesk/static/src/cdn/docs/stylesheets/pygment_trac.css
  60. 475
      odoo_website_helpdesk/static/src/cdn/docs/stylesheets/stylesheet.css
  61. 1
      odoo_website_helpdesk/static/src/cdn/docs/stylesheets/sumoselect.min.css
  62. 522
      odoo_website_helpdesk/static/src/cdn/docs/sumoselect_demo.html
  63. 11
      odoo_website_helpdesk/static/src/cdn/gpr-hack.js
  64. 42
      odoo_website_helpdesk/static/src/cdn/jquery.sumoselect.jquery.json
  65. 969
      odoo_website_helpdesk/static/src/cdn/jquery.sumoselect.js
  66. 102
      odoo_website_helpdesk/static/src/cdn/jquery.sumoselect.min.js
  67. 8965
      odoo_website_helpdesk/static/src/cdn/package-lock.json
  68. 42
      odoo_website_helpdesk/static/src/cdn/package.json
  69. 10
      odoo_website_helpdesk/static/src/cdn/release.bash
  70. 117
      odoo_website_helpdesk/static/src/cdn/sumoselect.css
  71. 1
      odoo_website_helpdesk/static/src/cdn/sumoselect.min.css
  72. 261
      odoo_website_helpdesk/static/src/js/helpdesk_dashboard_action.js
  73. 14
      odoo_website_helpdesk/static/src/js/multiple_product_choose.js
  74. 16
      odoo_website_helpdesk/static/src/js/portal_groupby.js
  75. 16
      odoo_website_helpdesk/static/src/js/portal_search.js
  76. 1
      odoo_website_helpdesk/static/src/js/ticket_details.js
  77. 533
      odoo_website_helpdesk/static/src/scss/rating.css
  78. 286
      odoo_website_helpdesk/static/src/xml/helpdesk_dashboard.xml
  79. 56
      odoo_website_helpdesk/templates/helpdesk_replay_template.xml
  80. 13
      odoo_website_helpdesk/views/categories.xml
  81. 276
      odoo_website_helpdesk/views/helpdesk.xml
  82. 84
      odoo_website_helpdesk/views/helpdesk_views.xml
  83. 211
      odoo_website_helpdesk/views/portal.xml
  84. 16
      odoo_website_helpdesk/views/portal_search.xml
  85. 158
      odoo_website_helpdesk/views/rating_form.xml
  86. 7
      odoo_website_helpdesk/views/report.xml
  87. 86
      odoo_website_helpdesk/views/res_config_settings.xml
  88. 62
      odoo_website_helpdesk/views/team.xml
  89. 225
      odoo_website_helpdesk/views/website_form.xml

4
odoo_website_helpdesk/README.rst

@ -1,5 +1,5 @@
Website Helpdesk Support Ticket Management
=========================================
HelpDesk Support
=========================
* HelpDesk Support for Odoo 16 community editions
Installation

1
odoo_website_helpdesk/__init__.py

@ -19,6 +19,5 @@
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
from . import controller
from . import models

32
odoo_website_helpdesk/__manifest__.py

@ -21,33 +21,53 @@
#############################################################################
{
'name': "Website Helpdesk Support Ticket Management V16",
'version': '16.0.2.0.2',
'summary': """Website Helpdesk Support Ticket Management for V16 Community""",
'description': """Website Helpdesk Support Ticket Management for V16 Community, Helpdesk, helpdesk, support, ticket""",
'name': "Website Helpdesk Support Ticket Management",
'version': '16.0.1.0.0',
'summary': """Helpdesk Module for community""",
'description': """Can create ticket from website also and can manage it from backend.
Bill can be created for ticket with service cost""",
'author': "Cybrosys Techno Solutions",
'company': 'Cybrosys Techno Solutions',
'maintainer': 'Cybrosys Techno Solutions',
'category': 'Website',
'depends': ['website', 'project', 'sale_project', 'hr_timesheet'],
'depends': ['base', 'website', 'project', 'sale_project', 'hr_timesheet','mail','contacts'],
'data': [
'security/security_groups.xml',
'security/ir.model.access.csv',
'views/helpdesk.xml',
'views/team.xml',
'views/portal_search.xml',
'views/res_config_settings.xml',
'views/website_form.xml',
'views/report.xml',
'views/helpdesk.xml',
'views/helpdesk_views.xml',
'views/portal.xml',
'views/categories.xml',
'views/rating_form.xml',
'templates/helpdesk_replay_template.xml',
'data/ticket_sequence.xml',
'data/ticket_stage_data.xml',
'data/ticket_type.xml',
'data/ticket_auto_close.xml',
'data/rating_template.xml',
'report/helpdesk_ticket_report_template.xml',
],
'assets': {
'web.assets_frontend': [
'odoo_website_helpdesk/static/src/js/ticket_details.js',
],
'web.assets_backend': [
'odoo_website_helpdesk/static/src/xml/helpdesk_dashboard.xml',
'odoo_website_helpdesk/static/src/js/helpdesk_dashboard_action.js',
],
'web.assets_frontend': [
'/odoo_website_helpdesk/static/src/js/portal_search.js',
'/odoo_website_helpdesk/static/src/js/portal_groupby.js',
'/odoo_website_helpdesk/static/src/js/multiple_product_choose.js',
'/odoo_website_helpdesk/static/src/cdn/jquery.sumoselect.min.js',
'/odoo_website_helpdesk/static/src/cdn/sumoselect.min.css',
]
},
'images': ['static/description/banner.png'],
'license': 'LGPL-3',

25
odoo_website_helpdesk/controller/__init__.py

@ -1,24 +1,5 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2022-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>)
#
# You can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# (LGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
from . import website_form
from . import portal
from . import helpdesk_website
from . import ticket_search
from . import ticket_group_by

271
odoo_website_helpdesk/controller/helpdesk_website.py

@ -0,0 +1,271 @@
from odoo import http
from odoo.http import request
import datetime as DT
class HelpDeskDashboard(http.Controller):
@http.route(['/helpdesk_dashboard'], type='json', auth="public")
def helpdesk_dashboard(self):
stage_new = request.env['ticket.stage'].search(
[('name', '=', 'Inbox')], limit=1).id
stage_draft = request.env['ticket.stage'].search(
[('name', '=', 'Draft')], limit=1).id
stage_inprogress = request.env['ticket.stage'].search(
[('name', '=', 'In Progress')], limit=1).id
stage_canceled = request.env['ticket.stage'].search(
[('name', '=', 'Canceled')], limit=1).id
stage_done = request.env['ticket.stage'].search(
[('name', '=', 'Done')], limit=1).id
stage_closed = request.env['ticket.stage'].search(
[('name', '=', 'Closed')], limit=1).id
stage_ids = [stage_new,stage_draft]
new = request.env["help.ticket"].search_count([('stage_id', 'in', stage_ids)])
new_id = request.env["help.ticket"].search([('stage_id', 'in', stage_ids)])
new_id_ls = []
for data in new_id:
new_id_ls.append(data.id)
in_progress = request.env["help.ticket"].search_count([('stage_id', '=', stage_inprogress)])
in_progress_id = request.env["help.ticket"].search([('stage_id', '=', stage_inprogress)])
in_progress_ls = []
for data in in_progress_id:
in_progress_ls.append(data.id)
canceled = request.env["help.ticket"].search_count([('stage_id', '=', stage_canceled)])
canceled_id = request.env["help.ticket"].search([('stage_id', '=', stage_canceled)])
canceled_id_ls = []
for data in canceled_id:
canceled_id_ls.append(data.id)
done = request.env["help.ticket"].search_count([('stage_id', '=', stage_done)])
done_id = request.env["help.ticket"].search([('stage_id', '=', stage_done)])
done_id_ls = []
for data in done_id:
done_id_ls.append(data.id)
closed = request.env["help.ticket"].search_count([('stage_id', '=', stage_closed)])
closed_id = request.env["help.ticket"].search([('stage_id', '=', stage_closed)])
closed_id_ls = []
for data in closed_id:
closed_id_ls.append(data.id)
dashboard_values = {
'new':new,
'in_progress':in_progress,
'canceled':canceled,
'done':done,
'closed':closed,
'new_id':new_id_ls,
'in_progress_id':in_progress_ls,
'canceled_id': canceled_id_ls,
'done_id': done_id_ls,
'closed_id': closed_id_ls,
}
return dashboard_values
@http.route(['/helpdesk_dashboard_week'], type='json', auth="public")
def helpdesk_dashboard_week(self):
today = DT.date.today()
stage_new = request.env['ticket.stage'].search(
[('name', '=', 'Inbox')], limit=1).id
stage_draft = request.env['ticket.stage'].search(
[('name', '=', 'Draft')], limit=1).id
stage_inprogress = request.env['ticket.stage'].search(
[('name', '=', 'In Progress')], limit=1).id
stage_canceled = request.env['ticket.stage'].search(
[('name', '=', 'Canceled')], limit=1).id
stage_done = request.env['ticket.stage'].search(
[('name', '=', 'Done')], limit=1).id
stage_closed = request.env['ticket.stage'].search(
[('name', '=', 'Closed')], limit=1).id
stage_ids = [stage_new, stage_draft]
week_ago = str(today - DT.timedelta(days=7)) + ' '
new = request.env["help.ticket"].search_count(
[('stage_id', 'in', stage_ids), ('create_date', '>', week_ago)])
new_id = request.env["help.ticket"].search(
[('stage_id', 'in', stage_ids), ('create_date', '>', week_ago)])
new_id_ls = []
for data in new_id:
new_id_ls.append(data.id)
in_progress = request.env["help.ticket"].search_count(
[('stage_id', '=', stage_inprogress), ('create_date', '>', week_ago)])
in_progress_id = request.env["help.ticket"].search(
[('stage_id', '=', stage_inprogress), ('create_date', '>', week_ago)])
in_progress_ls = []
for data in in_progress_id:
in_progress_ls.append(data.id)
canceled = request.env["help.ticket"].search_count(
[('stage_id', '=', stage_canceled), ('create_date', '>', week_ago)])
canceled_id = request.env["help.ticket"].search(
[('stage_id', '=', stage_canceled), ('create_date', '>', week_ago)])
canceled_id_ls = []
for data in canceled_id:
canceled_id_ls.append(data.id)
done = request.env["help.ticket"].search_count(
[('stage_id', '=', stage_done), ('create_date', '>', week_ago)])
done_id = request.env["help.ticket"].search(
[('stage_id', '=', stage_done), ('create_date', '>', week_ago)])
done_id_ls = []
for data in done_id:
done_id_ls.append(data.id)
closed = request.env["help.ticket"].search_count(
[('stage_id', '=', stage_closed), ('create_date', '>', week_ago)])
closed_id = request.env["help.ticket"].search(
[('stage_id', '=', stage_closed), ('create_date', '>', week_ago)])
closed_id_ls = []
for data in closed_id:
closed_id_ls.append(data.id)
dashboard_values = {
'new': new,
'in_progress': in_progress,
'canceled': canceled,
'done': done,
'closed': closed,
'new_id': new_id_ls,
'in_progress_id': in_progress_ls,
'canceled_id': canceled_id_ls,
'done_id': done_id_ls,
'closed_id': closed_id_ls,
}
return dashboard_values
@http.route(['/helpdesk_dashboard_month'], type='json', auth="public")
def helpdesk_dashboard_month(self):
today = DT.date.today()
stage_new = request.env['ticket.stage'].search(
[('name', '=', 'Inbox')], limit=1).id
stage_draft = request.env['ticket.stage'].search(
[('name', '=', 'Draft')], limit=1).id
stage_inprogress = request.env['ticket.stage'].search(
[('name', '=', 'In Progress')], limit=1).id
stage_canceled = request.env['ticket.stage'].search(
[('name', '=', 'Canceled')], limit=1).id
stage_done = request.env['ticket.stage'].search(
[('name', '=', 'Done')], limit=1).id
stage_closed = request.env['ticket.stage'].search(
[('name', '=', 'Closed')], limit=1).id
stage_ids = [stage_new, stage_draft]
week_ago = str(today - DT.timedelta(days=30)) + ' '
new = request.env["help.ticket"].search_count(
[('stage_id', 'in', stage_ids), ('create_date', '>', week_ago)])
new_id = request.env["help.ticket"].search(
[('stage_id', 'in', stage_ids), ('create_date', '>', week_ago)])
new_id_ls = []
for data in new_id:
new_id_ls.append(data.id)
in_progress = request.env["help.ticket"].search_count(
[('stage_id', '=', stage_inprogress),
('create_date', '>', week_ago)])
in_progress_id = request.env["help.ticket"].search(
[('stage_id', '=', stage_inprogress),
('create_date', '>', week_ago)])
in_progress_ls = []
for data in in_progress_id:
in_progress_ls.append(data.id)
canceled = request.env["help.ticket"].search_count(
[('stage_id', '=', stage_canceled),
('create_date', '>', week_ago)])
canceled_id = request.env["help.ticket"].search(
[('stage_id', '=', stage_canceled),
('create_date', '>', week_ago)])
canceled_id_ls = []
for data in canceled_id:
canceled_id_ls.append(data.id)
done = request.env["help.ticket"].search_count(
[('stage_id', '=', stage_done), ('create_date', '>', week_ago)])
done_id = request.env["help.ticket"].search(
[('stage_id', '=', stage_done), ('create_date', '>', week_ago)])
done_id_ls = []
for data in done_id:
done_id_ls.append(data.id)
closed = request.env["help.ticket"].search_count(
[('stage_id', '=', stage_closed), ('create_date', '>', week_ago)])
closed_id = request.env["help.ticket"].search(
[('stage_id', '=', stage_closed), ('create_date', '>', week_ago)])
closed_id_ls = []
for data in closed_id:
closed_id_ls.append(data.id)
dashboard_values = {
'new': new,
'in_progress': in_progress,
'canceled': canceled,
'done': done,
'closed': closed,
'new_id': new_id_ls,
'in_progress_id': in_progress_ls,
'canceled_id': canceled_id_ls,
'done_id': done_id_ls,
'closed_id': closed_id_ls,
}
return dashboard_values
@http.route(['/helpdesk_dashboard_year'], type='json', auth="public")
def helpdesk_dashboard_year(self):
today = DT.date.today()
stage_new = request.env['ticket.stage'].search(
[('name', '=', 'Inbox')], limit=1).id
stage_draft = request.env['ticket.stage'].search(
[('name', '=', 'Draft')], limit=1).id
stage_inprogress = request.env['ticket.stage'].search(
[('name', '=', 'In Progress')], limit=1).id
stage_canceled = request.env['ticket.stage'].search(
[('name', '=', 'Canceled')], limit=1).id
stage_done = request.env['ticket.stage'].search(
[('name', '=', 'Done')], limit=1).id
stage_closed = request.env['ticket.stage'].search(
[('name', '=', 'Closed')], limit=1).id
stage_ids = [stage_new, stage_draft]
week_ago = str(today - DT.timedelta(days=360)) + ' '
new = request.env["help.ticket"].search_count(
[('stage_id', 'in', stage_ids), ('create_date', '>', week_ago)])
new_id = request.env["help.ticket"].search(
[('stage_id', 'in', stage_ids), ('create_date', '>', week_ago)])
new_id_ls = []
for data in new_id:
new_id_ls.append(data.id)
in_progress = request.env["help.ticket"].search_count(
[('stage_id', '=', stage_inprogress),
('create_date', '>', week_ago)])
in_progress_id = request.env["help.ticket"].search(
[('stage_id', '=', stage_inprogress),
('create_date', '>', week_ago)])
in_progress_ls = []
for data in in_progress_id:
in_progress_ls.append(data.id)
canceled = request.env["help.ticket"].search_count(
[('stage_id', '=', stage_canceled),
('create_date', '>', week_ago)])
canceled_id = request.env["help.ticket"].search(
[('stage_id', '=', stage_canceled),
('create_date', '>', week_ago)])
canceled_id_ls = []
for data in canceled_id:
canceled_id_ls.append(data.id)
done = request.env["help.ticket"].search_count(
[('stage_id', '=', stage_done), ('create_date', '>', week_ago)])
done_id = request.env["help.ticket"].search(
[('stage_id', '=', stage_done), ('create_date', '>', week_ago)])
done_id_ls = []
for data in done_id:
done_id_ls.append(data.id)
closed = request.env["help.ticket"].search_count(
[('stage_id', '=', stage_closed), ('create_date', '>', week_ago)])
closed_id = request.env["help.ticket"].search(
[('stage_id', '=', stage_closed), ('create_date', '>', week_ago)])
closed_id_ls = []
for data in closed_id:
closed_id_ls.append(data.id)
dashboard_values = {
'new': new,
'in_progress': in_progress,
'canceled': canceled,
'done': done,
'closed': closed,
'new_id': new_id_ls,
'in_progress_id': in_progress_ls,
'canceled_id': canceled_id_ls,
'done_id': done_id_ls,
'closed_id': closed_id_ls,
}
return dashboard_values

62
odoo_website_helpdesk/controller/portal.py

@ -53,10 +53,68 @@ class TicketPortal(portal.CustomerPortal):
return request.render("odoo_website_helpdesk.portal_my_tickets",
values)
@http.route(['/my/tickets/<int:id>'], type='http', auth="public",
website=True)
def portal_tickets_details(self, id):
details = request.env['help.ticket'].sudo().search([('id', '=', id)])
data = {
'page_name': 'ticket',
'ticket': True,
'details': details,
}
return request.render("odoo_website_helpdesk.portal_ticket_details",
data)
class WebsiteDesk(http.Controller):
@http.route('/my/tickets/download/<id>', auth='public',
type='http',
website=True)
def ticket_download_portal(self, id):
data = {
'help': request.env['help.ticket'].sudo().browse(int(id))}
report = request.env.ref(
'odoo_website_helpdesk.action_report_helpdesk_ticket')
pdf, _ = request.env.ref(
'odoo_website_helpdesk.action_report_helpdesk_ticket').sudo()._render_qweb_pdf(
report, data=data)
pdf_http_headers = [('Content-Type', 'application/pdf'),
('Content-Length', len(pdf)),
('Content-Disposition',
'attachment; filename="Helpdesk Ticket.pdf"')]
return request.make_response(pdf, headers=pdf_http_headers)
class WebsiteDesk(http.Controller):
@http.route(['/helpdesk_ticket'], type='http', auth="public", website=True,
sitemap=True)
def helpdesk_ticket(self, **kwargs):
return request.render('odoo_website_helpdesk.ticket_form')
types = request.env['helpdesk.types'].sudo().search([])
categories = request.env['helpdesk.categories'].sudo().search([])
product = request.env['product.template'].sudo().search([])
values = {}
values.update({
'types': types,
'categories': categories,
'product_website': product
})
return request.render('odoo_website_helpdesk.ticket_form', values)
@http.route(['/rating/<int:ticket_id>'], type='http', auth="public",
website=True,
sitemap=True)
def rating(self, ticket_id):
ticket = request.env['help.ticket'].browse(ticket_id)
data = {
'ticket': ticket.id,
}
return request.render('odoo_website_helpdesk.rating_form', data)
@http.route(['/rating/<int:ticket_id>/submit'], type='http', auth="user",
website=True, csrf=False,
sitemap=True)
def rating_backend(self, ticket_id, **post):
ticket = request.env['help.ticket'].browse(ticket_id)
ticket.write({
'customer_rating': post['rating'],
'review': post['message'],
})
return request.render('odoo_website_helpdesk.rating_thanks')

44
odoo_website_helpdesk/controller/ticket_group_by.py

@ -0,0 +1,44 @@
from odoo import http
from odoo.http import request
class TicketGroupBy(http.Controller):
@http.route(['/ticketgroupby'], type='json', auth="public", website=True)
def ticket_group_by(self,**kwargs):
context = []
group_value = kwargs.get("search_value")
if group_value == '0':
context = []
tickets = request.env["help.ticket"].search([])
if group_value == '1':
context = []
stage_ids = request.env['ticket.stage'].search([])
for stage in stage_ids:
ticket_ids = request.env['help.ticket'].search([
('stage_id', '=', stage.id)
])
if ticket_ids:
context.append({
'name': stage.name,
'data': ticket_ids
})
if group_value == '2':
context = []
type_ids = request.env['helpdesk.types'].search([])
for types in type_ids:
ticket_ids_1 = request.env['help.ticket'].search([
('ticket_type', '=', types.id)
])
if ticket_ids_1:
context.append({
'name': types.name,
'data': ticket_ids_1
})
values = {
'tickets': context,
}
response = http.Response(
template='odoo_website_helpdesk.ticket_group_by_table',
qcontext=values)
return response.render()

14
odoo_website_helpdesk/controller/ticket_search.py

@ -0,0 +1,14 @@
from odoo import http
from odoo.http import request
class TicketSearch(http.Controller):
@http.route(['/ticketsearch'], type='json', auth="public", website=True)
def ticket_search(self,**kwargs):
search_value = kwargs.get("search_value")
tickets = request.env["help.ticket"].search([('name', '=', search_value)])
values = {
'tickets': tickets,
}
response = http.Response(template='odoo_website_helpdesk.ticket_table',qcontext=values)
return response.render()

138
odoo_website_helpdesk/controller/website_form.py

@ -24,58 +24,112 @@ import json
from psycopg2 import IntegrityError
from odoo import _
from odoo import _,http
from odoo.addons.website.controllers.form import WebsiteForm
from odoo.exceptions import ValidationError
from odoo.http import request
class helpdesk_product(http.Controller):
@http.route('/product', auth='public', type='json')
def product(self):
prols = [ ]
acc = request.env['product.template'].sudo().search([])
for i in acc:
dic = {'name': i['name'],
'id': i['id']}
prols.append(dic)
return prols
class WebsiteFormInherit(WebsiteForm):
def _handle_website_form(self, model_name, **kwargs):
customer=request.env.user.partner_id
if model_name == 'help.ticket':
rec_val = {
'customer_name': kwargs.get('customer_name'),
'subject': kwargs.get('subject'),
'description': kwargs.get('description'),
'email': kwargs.get('email_from'),
'phone': kwargs.get('phone'),
'priority': kwargs.get('priority'),
'stage_id': request.env['ticket.stage'].search(
[('name', '=', 'Inbox')], limit=1).id,
}
partner = request.env['res.partner'].sudo().search(
[('name', '=', kwargs.get('customer_name')),
('email', '=', kwargs.get('email_from'))], limit=1)
if partner:
rec_val['customer_id'] = partner.id
tickets = request.env['ticket.stage'].search(
[])
for rec in tickets:
sequence = tickets.mapped('sequence')
lowest_sequence = tickets.filtered(
lambda x: x.sequence == min(sequence))
if rec == lowest_sequence:
lowest_stage_id = lowest_sequence
products = kwargs.get('product')
if products:
splited_product = products.split(',')
product_list = [int(i) for i in splited_product]
rec_val = {
'customer_name': kwargs.get('customer_name'),
'subject': kwargs.get('subject'),
'description': kwargs.get('description'),
'email': kwargs.get('email_from'),
'phone': kwargs.get('phone'),
'priority': kwargs.get('priority'),
'product_id': product_list,
'stage_id': lowest_stage_id.id,
'customer_id': customer.id,
'ticket_type': kwargs.get('ticket_type'),
'category_id': kwargs.get('category'),
}
ticket_id = request.env['help.ticket'].sudo().create(rec_val)
request.session['ticket_number'] = ticket_id.name
request.session['ticket_id'] = ticket_id.id
model_record = request.env['ir.model'].sudo().search(
[('model', '=', model_name)])
data = self.extract_data(model_record, request.params)
if 'ticket_attachment' in request.params or request.httprequest.files or data.get(
'attachments'):
attached_files = data.get('attachments')
for attachment in attached_files:
attached_file = attachment.read()
request.env['ir.attachment'].sudo().create({
'name': attachment.filename,
'res_model': 'help.ticket',
'res_id': ticket_id.id,
'type': 'binary',
'datas': base64.encodebytes(attached_file),
})
request.session[
'form_builder_model_model'] = model_record.model
request.session['form_builder_model'] = model_record.name
request.session['form_builder_id'] = ticket_id.id
return json.dumps({'id': ticket_id.id})
else:
rec_val['public_ticket'] = True
ticket_id = request.env['help.ticket'].sudo().create(rec_val)
request.session['ticket_number'] = ticket_id.name
request.session['ticket_id'] = ticket_id.id
model_record = request.env['ir.model'].sudo().search(
[('model', '=', model_name)])
data = self.extract_data(model_record, request.params)
if 'ticket_attachment' in request.params or request.httprequest.files or data.get(
'attachments'):
attached_files = data.get('attachments')
for attachment in attached_files:
attached_file = attachment.read()
request.env['ir.attachment'].sudo().create({
'name': attachment.filename,
'res_model': 'help.ticket',
'res_id': ticket_id.id,
'type': 'binary',
'datas': base64.encodebytes(attached_file),
})
request.session['form_builder_model_model'] = model_record.model
request.session['form_builder_model'] = model_record.name
request.session['form_builder_id'] = ticket_id.id
return json.dumps({'id': ticket_id.id})
rec_val = {
'customer_name': kwargs.get('customer_name'),
'subject': kwargs.get('subject'),
'description': kwargs.get('description'),
'email': kwargs.get('email_from'),
'phone': kwargs.get('phone'),
'priority': kwargs.get('priority'),
'stage_id': lowest_stage_id.id,
'customer_id':customer.id,
'ticket_type':kwargs.get('ticket_type'),
'category_id':kwargs.get('category'),
}
ticket_id = request.env['help.ticket'].sudo().create(rec_val)
request.session['ticket_number'] = ticket_id.name
request.session['ticket_id'] = ticket_id.id
model_record = request.env['ir.model'].sudo().search(
[('model', '=', model_name)])
data = self.extract_data(model_record, request.params)
if 'ticket_attachment' in request.params or request.httprequest.files or data.get(
'attachments'):
attached_files = data.get('attachments')
for attachment in attached_files:
attached_file = attachment.read()
request.env['ir.attachment'].sudo().create({
'name': attachment.filename,
'res_model': 'help.ticket',
'res_id': ticket_id.id,
'type': 'binary',
'datas': base64.encodebytes(attached_file),
})
request.session['form_builder_model_model'] = model_record.model
request.session['form_builder_model'] = model_record.name
request.session['form_builder_id'] = ticket_id.id
return json.dumps({'id': ticket_id.id})
else:
model_record = request.env['ir.model'].sudo().search(
[('model', '=', model_name)])

121
odoo_website_helpdesk/data/rating_template.xml

@ -0,0 +1,121 @@
<odoo>
<data>
<record id="ticket_created" model="mail.template">
<field name="name">Create Ticket</field>
<field name="model_id" ref="odoo_website_helpdesk.model_help_ticket"/>
<field name="auto_delete" eval="True"/>
<field name="email_to">{{object.customer_id.email}}</field>
<field name="subject">Ticket Created</field>
<field name="body_html" type="html">
<p>
Dear <t t-out="object.customer_id.name"/>
<br/>
Your Ticket <t t-out="object.name"/> is Created and Assigned.Kindly Wait while we're resolving your Query
<br/>
<br/>
Thanks.
</p>
</field>
</record>
<record id="helpdesk_rating" model="mail.template">
<field name="name">Close Ticket And Feedback</field>
<field name="model_id"
ref="odoo_website_helpdesk.model_help_ticket"/>
<field name="auto_delete" eval="True"/>
<!-- <field name="email_from">{{object.customer_id.email}}</field>-->
<field name="email_to">{{object.customer_id.email}}</field>
<field name="subject">Ticket Closed</field>
<field name="body_html" type="html">
<p>
Dear
<t t-out="object.customer_id.name"/>
Your Ticket
<t t-out="object.name"/>
Is Closed
<br/>
<button class="btn btn-info" role="button"
style="border:1px solid black;background-color:purple;padding-x:20px;padding-y:15px;border-radius:10px; width:120px;">
<a t-attf-href="/rating/{{object.id}}"
style="text-decoration:none;color:white;font-weight:bold;font-size:18px;">
Rate Now
</a>
</button>
<br/>
<br/>
Thanks.
</p>
</field>
</record>
<record id="ticket_reopened" model="mail.template">
<field name="name">Reopened Ticket</field>
<field name="model_id"
ref="odoo_website_helpdesk.model_help_ticket"/>
<field name="auto_delete" eval="True"/>
<field name="email_to">{{object.customer_id.email}}</field>
<field name="subject">Ticket Reopened</field>
<field name="body_html" type="html">
<p>
Dear
<t t-out="object.customer_id.name"/>
<br/>
Your Ticket
<t t-out="object.name"/>
is Reopened
<br/>
<br/>
Thanks.
</p>
</field>
</record>
<record id="ticket_approved" model="mail.template">
<field name="name">Approve Ticket</field>
<field name="model_id"
ref="odoo_website_helpdesk.model_help_ticket"/>
<field name="auto_delete" eval="True"/>
<field name="email_to">{{object.customer_id.email}}</field>
<field name="subject">Ticket Solved</field>
<field name="body_html" type="html">
<p>
Dear
<t t-out="object.customer_id.name"/>
<br/>
i think your Problem is Solved.
Your Ticket
<t t-out="object.name"/>
is Done
<br/>
<br/>
Thanks.
</p>
</field>
</record>
<record id="ticket_canceled" model="mail.template">
<field name="name">Cancel Ticket</field>
<field name="model_id"
ref="odoo_website_helpdesk.model_help_ticket"/>
<field name="auto_delete" eval="True"/>
<field name="email_to">{{object.customer_id.email}}</field>
<field name="subject">Ticket Canceled</field>
<field name="body_html" type="html">
<p>
Dear
<t t-out="object.customer_id.name"/>
<br/>
Your Ticket
<t t-out="object.name"/>
is Canceled Due to Some Reasons
<br/>
<br/>
Thanks.
</p>
</field>
</record>
</data>
</odoo>

79
odoo_website_helpdesk/data/ticket_auto_close.xml

@ -0,0 +1,79 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<data noupdate="1">
<record id="auto_close_ticket" model="ir.cron">
<field name="name">Auto Close Ticket</field>
<field name="model_id" ref="odoo_website_helpdesk.model_help_ticket"/>
<field name="state">code</field>
<field name="code">model.auto_close_ticket()</field>
<field name="user_id" ref="base.user_root"/>
<field name="interval_number">1</field>
<field name="interval_type">days</field>
<field name="numbercall">-1</field>
</record>
<record id="odoo_website_helpdesk_assign"
model="mail.template">
<field name="name">Ticket Assign</field>
<field name="email_from"></field>
<field name="email_to"></field>
<field name="subject"></field>
<field name="model_id"
ref="odoo_website_helpdesk.model_help_ticket"/>
<field name="body_html" type="html">
<div style="margin: 0px; padding: 0px;">
<p>Dear,<t t-esc="object.team_head.name"/></p>
<p> Your team has been given the ticket [<t t-esc="object.name"/>] kindly complete your work carefully.
</p>
<br></br>
<h2>Details </h2>
<p>Subject : <t t-esc="object.subject"/></p>
<p>Customer : <t t-esc="object.customer_id.name"/></p>
<p>Description : <t t-esc="object.description"/></p>
<br></br>
<p>Best regards</p>
</div>
</field>
</record>
<record id="odoo_website_helpdesk_assign_user"
model="mail.template">
<field name="name">Ticket Assign to User</field>
<field name="email_from"></field>
<field name="email_to"></field>
<field name="subject"></field>
<field name="model_id"
ref="odoo_website_helpdesk.model_help_ticket"/>
<field name="body_html" type="html">
<div style="margin: 0px; padding: 0px;">
<p>Dear,<t t-esc="object.assigned_user.name"/></p>
<p> Ticket [<t t-esc="object.name"/>] Assign to you , kindly complete your work carefully.
</p>
<br></br>
<h2>Details </h2>
<p>Subject : <t t-esc="object.subject"/></p>
<p>Customer : <t t-esc="object.customer_id.name"/></p>
<p>Description : <t t-esc="object.description"/></p>
<br></br>
<p>Best regards</p>
</div>
</field>
</record>
<record id="odoo_website_helpdesk_to_customer"
model="mail.template">
<field name="name">Mail To Customer Assign to User</field>
<field name="email_from"></field>
<field name="email_to"></field>
<field name="subject"></field>
<field name="model_id"
ref="odoo_website_helpdesk.model_help_ticket"/>
<field name="body_html" type="html">
<div style="margin: 0px; padding: 0px;">
<p>Dear,<t t-esc="object.customer_id.name"/></p>
<p> Ticket [<t t-esc="object.name"/>] successfully assigned to "<t t-esc="object.assigned_user.name"/>".
</p>
<br></br>
<p>Best regards</p>
</div>
</field>
</record>
</data>
</odoo>

8
odoo_website_helpdesk/data/ticket_stage_data.xml

@ -13,6 +13,7 @@
<record id="ticket_stage_03" model="ticket.stage">
<field name="sequence">20</field>
<field name="starting_stage" eval="True"/>
<field name="name">In Progress</field>
</record>
@ -25,6 +26,13 @@
<record id="ticket_stage_05" model="ticket.stage">
<field name="sequence">30</field>
<field name="name">Canceled</field>
<field name="cancel_stage" eval="True"/>
<field name="folded" eval="True"/>
</record>
<record id="ticket_stage_06" model="ticket.stage">
<field name="sequence">29</field>
<field name="name">Closed</field>
<field name="closing_stage" eval="True"/>
<field name="folded" eval="True"/>
</record>
</odoo>

21
odoo_website_helpdesk/data/ticket_type.xml

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="ticket_type_1" model="helpdesk.types">
<field name="name">Question</field>
</record>
<record id="ticket_type_2" model="helpdesk.types">
<field name="name">Issue</field>
</record>
<record id="ticket_type_3" model="helpdesk.types">
<field name="name">Repair</field>
</record>
<record id="ticket_type_4" model="helpdesk.types">
<field name="name">Maintenance</field>
</record>
<record id="ticket_categories_1" model="helpdesk.categories">
<field name="name">Internal</field>
</record>
<record id="ticket_categories_2" model="helpdesk.categories">
<field name="name">Technical</field>
</record>
</odoo>

6
odoo_website_helpdesk/doc/RELEASE_NOTES.md

@ -6,10 +6,4 @@
- Initial commit for Website Helpdesk Support Ticket
#### 04.04.2023
#### Version 16.0.2.0.1
#### FIX
- Updation in Translation file (Language)

837
odoo_website_helpdesk/i18n/ar_SY.po

@ -1,837 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * odoo_website_helpdesk
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-02-14 12:04+0000\n"
"PO-Revision-Date: 2023-02-14 12:04+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "&amp;nbsp;"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"<i class=\"fa fa-1x fa-fw fa-envelope mr-2\"/>\n"
" <span>\n"
" info@yourcompany.example.com\n"
" </span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<i class=\"fa fa-1x fa-fw fa-envelope mr-2\"/>\n"
" <span>\n"
" info@yourcompany.example.com</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"<i class=\"fa fa-map-marker fa-fw mr-2\"/>\n"
" <span class=\"o_force_ltr\">3575\n"
" Demo Buena Vista Avenue\n"
" </span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<i class=\"fa fa-map-marker fa-fw mr-2\"/>\n"
" <span class=\"o_force_ltr\">3575 Demo\n"
" Buena\n"
" Vista Avenue</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"<i class=\"fa fa-phone fa-fw mr-2\"/>\n"
" <span class=\"o_force_ltr\">+1\n"
" (650) 555-0111\n"
" </span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<i class=\"fa fa-phone fa-fw mr-2\"/>\n"
" <span class=\"o_force_ltr\">+1 (650)\n"
" 555-0111</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "<span class=\"d-none d-md-inline\">Ticket #</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Attachment</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Company</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Description</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Email To</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Email</span>\n"
" <span class=\"s_website_form_mark\">\n"
" *</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Name</span>\n"
" <span class=\"s_website_form_mark\">\n"
" *</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Phone </span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Priority</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Subject</span>\n"
" <span class=\"s_website_form_mark\">\n"
" *</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Analytic Account</span>"
msgstr "<span>حساب تحليلي</span>"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Assigned to</span>"
msgstr "<span>مخصص ل</span>"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Customer :</span>"
msgstr "<span>: عميل</span>"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Description :</span>"
msgstr "<span>: وصف</span>"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Priority :</span>"
msgstr "<span>: أولوية</span>"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Task Name</span>"
msgstr "<span>اسم المهمة</span>"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Total Hours Spend</span>"
msgstr "<span>إجمالي ساعات الإنفاق</span>"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<strong>Tasks</strong>"
msgstr "<strong>مهام</strong>"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_needaction
msgid "Action Needed"
msgstr "الإجراءات اللازمة"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__active
msgid "Active"
msgstr "نشيط"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_ids
msgid "Activities"
msgstr "أنشطة"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_exception_decoration
msgid "Activity Exception Decoration"
msgstr "زخرفة استثناء النشاط"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_state
msgid "Activity State"
msgstr "حالة النشاط"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_type_icon
msgid "Activity Type Icon"
msgstr "رمز نوع النشاط"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_attachment_count
msgid "Attachment Count"
msgstr "عدد المرفقات"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__billable
msgid "Billable"
msgstr "قابل للفوترة"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_project_task__ticket_billed
msgid "Billed"
msgstr "فاتورة"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__closing_stage
msgid "Closing Stage"
msgstr "Closing Stage"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__color
msgid "Color"
msgstr "لون"
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_res_config_settings
msgid "Config Settings"
msgstr "إعدادات التكوين"
#. module: odoo_website_helpdesk
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk_configuration
msgid "Configuration"
msgstr "إعدادات"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"Contact us about anything related to our\n"
" company or services.<br/>\n"
" We'll do our best to get back to you as soon\n"
" as possible."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__cost
msgid "Cost per hour"
msgstr "التكلفة بالساعة"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Create Invoice"
msgstr "إنشاء فاتورة"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__create_task
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__create_task
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__show_create_task
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Create Task"
msgstr "إنشاء مهمة"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_res_config_settings__show_create_task
msgid "Create Tasks"
msgstr "إنشاء المهام"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__create_uid
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__create_uid
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__create_uid
msgid "Created by"
msgstr "انشأ من قبل"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__create_date
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__create_date
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__create_date
msgid "Created on"
msgstr "تم إنشاؤها على"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Customer :"
msgstr ": عميل"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__customer_name
msgid "Customer Name"
msgstr "اسم الزبون"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "Date"
msgstr "تاريخ"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Delete"
msgstr "يمسح"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__description
msgid "Description"
msgstr "وصف"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__display_name
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__display_name
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__display_name
msgid "Display Name"
msgstr "اسم العرض"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Dropdown menu"
msgstr "القائمة المنسدلة"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Edit..."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__email
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__email
msgid "Email"
msgstr "بريد إلكتروني"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_team_form
msgid "Enable for allowing team to create tasks from tickets"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_res_config_settings_view_form
msgid "Enable to create tasks from tickets"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__end_date
msgid "End Date"
msgstr "تاريخ الانتهاء"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__folded
msgid "Folded in Kanban"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_follower_ids
msgid "Followers"
msgstr "متابعون"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_partner_ids
msgid "Followers (Partners)"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__activity_type_icon
msgid "Font awesome icon e.g. fa-tasks"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__has_message
msgid "Has Message"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_home_menu_tickets
msgid "HelpDesk Tickets"
msgstr "تذاكر مكتب المساعدة"
#. module: odoo_website_helpdesk
#: model:ir.actions.act_window,name:odoo_website_helpdesk.action_helpdesk
#: model:ir.actions.act_window,name:odoo_website_helpdesk.action_helpdesk_team
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk
#: model:website.menu,name:odoo_website_helpdesk.website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_res_config_settings_view_form
msgid "Helpdesk"
msgstr "مكتب المساعدة"
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_help_team
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__team_id
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk_team
msgid "Helpdesk Team"
msgstr "فريق مكتب المساعدة"
#. module: odoo_website_helpdesk
#: model:ir.actions.act_window,name:odoo_website_helpdesk.action_helpdesk_general_settings
#: model:ir.model,name:odoo_website_helpdesk.model_help_ticket
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.help_ticket_view_calendar
msgid "Helpdesk Ticket"
msgstr "تذكرة مكتب المساعدة"
#. module: odoo_website_helpdesk
#: model:ir.ui.menu,name:odoo_website_helpdesk.helpdesk_tickets
msgid "Helpdesk Tickets"
msgstr "تذاكر مكتب المساعدة"
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__3
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "High"
msgstr "عالي"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__id
msgid "ID"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_exception_icon
msgid "Icon"
msgstr "أيقونة"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__activity_exception_icon
msgid "Icon to indicate an exception activity."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_needaction
msgid "If checked, new messages require your attention."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_has_error
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_has_sms_error
msgid "If checked, some messages have a delivery error."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__invoice_ids
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Invoices"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_is_follower
msgid "Is Follower"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Issue Description"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Issue description in detail"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_account_move
msgid "Journal Entry"
msgstr "قيد اليومية"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team____last_update
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket____last_update
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage____last_update
msgid "Last Modified on"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__write_uid
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__write_uid
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__write_uid
msgid "Last Updated by"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__write_date
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__write_date
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__write_date
msgid "Last Updated on"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__1
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Low"
msgstr "قليل"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_main_attachment_id
msgid "Main Attachment"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__member_ids
msgid "Members"
msgstr "أعضاء"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Mention your Issue here"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_has_error
msgid "Message Delivery error"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_ids
msgid "Messages"
msgstr "رسائل"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__my_activity_date_deadline
msgid "My Activity Deadline"
msgstr "الموعد النهائي لنشاطي"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid "My Company"
msgstr "شركتي"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "My Tickets"
msgstr "تذاكري"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__name
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__name
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__name
msgid "Name"
msgstr "اسم"
#. module: odoo_website_helpdesk
#: code:addons/odoo_website_helpdesk/models/helpdesk.py:0
#, python-format
msgid "New"
msgstr "جديد"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_date_deadline
msgid "Next Activity Deadline"
msgstr "الموعد النهائي للنشاط التالي"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_summary
msgid "Next Activity Summary"
msgstr "ملخص النشاط التالي"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_type_id
msgid "Next Activity Type"
msgstr "نوع النشاط التالي"
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__2
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Normal"
msgstr "طبيعي"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_needaction_counter
msgid "Number of Actions"
msgstr "عدد الإجراءات"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_has_error_counter
msgid "Number of errors"
msgstr "عدد الأخطاء"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_needaction_counter
msgid "Number of messages which requires an action"
msgstr "عدد الرسائل التي تتطلب اتخاذ إجراء"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_has_error_counter
msgid "Number of messages with delivery error"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__phone
msgid "Phone"
msgstr "هاتف"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__priority
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "Priority"
msgstr ": أولوية"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Priority :"
msgstr ": أولوية"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__product_id
msgid "Product"
msgstr "منتج"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__project_id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__project_id
msgid "Project"
msgstr "مشروع"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Provide the reason in detail"
msgstr "قدم السبب بالتفصيل"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__public_ticket
msgid "Public Ticket"
msgstr "تذكرة عامة"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_user_id
msgid "Responsible User"
msgstr "مستخدم مسؤول"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_has_sms_error
msgid "SMS Delivery error"
msgstr "خطأ في تسليم الرسائل القصيرة"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__sequence
msgid "Sequence"
msgstr "تسلسل"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__service_product_id
msgid "Service Product"
msgstr "منتج الخدمة"
#. module: odoo_website_helpdesk
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk_settings
msgid "Settings"
msgstr "إعدادات"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__stage_id
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "Stage"
msgstr "منصة"
#. module: odoo_website_helpdesk
#: model:ir.actions.act_window,name:odoo_website_helpdesk.action_helpdesk_stage
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk_stage
msgid "Stages"
msgstr "مراحل"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__start_date
msgid "Start Date"
msgstr "تاريخ البدء"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__activity_state
msgid ""
"Status based on activities\n"
"Overdue: Due date is already passed\n"
"Today: Activity date is today\n"
"Planned: Future activities."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__subject
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "Subject"
msgstr "موضوع"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Subject :"
msgstr ": موضوع"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Submit"
msgstr "يُقدِّم"
#. module: odoo_website_helpdesk
#: model:ir.ui.menu,name:odoo_website_helpdesk.helpdesk_management
msgid "Support"
msgstr "يدعم"
#. module: odoo_website_helpdesk
#: model:ir.actions.report,name:odoo_website_helpdesk.report_ticket
msgid "Support Ticket"
msgstr "بطاقة الدعم"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Support Tickets"
msgstr "تذاكر الدعم الفني"
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_project_task
msgid "Task"
msgstr "المهمة"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__task_ids
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_team_form
msgid "Tasks"
msgstr "مهام"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Team :"
msgstr ": فريق"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid "Thank You!"
msgstr "!شكرًا لك"
#. module: odoo_website_helpdesk
#: code:addons/odoo_website_helpdesk/controller/website_form.py:0
#, python-format
msgid "The form's specified model does not exist"
msgstr "النموذج المحدد للنموذج غير موجود"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "There are currently no tickets issued for your account."
msgstr "لا يوجد حاليا أي تذاكر صادرة لحسابك"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_account_bank_statement_line__ticket_id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_account_move__ticket_id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_account_payment__ticket_id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_project_task__ticket_id
msgid "Ticket"
msgstr "تذكرة"
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_ticket_stage
msgid "Ticket Stage"
msgstr "مرحلة التذكرة"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_view_activity
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_home_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_home_menu_tickets
msgid "Tickets"
msgstr "تذاكر"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__activity_exception_decoration
msgid "Type of the exception activity on record."
msgstr "نوع نشاط الاستثناء المسجل"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"Very\n"
" Low"
msgstr "منخفظ جدا"
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__4
msgid "Very High"
msgstr "عالي جدا"
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__0
msgid "Very Low"
msgstr "منخفظ جدا"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"We will get back\n"
" to you shortly."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__website_message_ids
msgid "Website Messages"
msgstr "رسائل الموقع"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__website_message_ids
msgid "Website communication history"
msgstr "سجل اتصالات الموقع"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid "Your Ticket"
msgstr "تذكرتك"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__customer_id
msgid "customer"
msgstr "عميل"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"has been registered\n"
" <b>successfully</b>"
msgstr ""

837
odoo_website_helpdesk/i18n/de_CH.po

@ -1,837 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * odoo_website_helpdesk
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-02-14 12:48+0000\n"
"PO-Revision-Date: 2023-02-14 12:48+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "&amp;nbsp;"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"<i class=\"fa fa-1x fa-fw fa-envelope mr-2\"/>\n"
" <span>\n"
" info@yourcompany.example.com\n"
" </span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<i class=\"fa fa-1x fa-fw fa-envelope mr-2\"/>\n"
" <span>\n"
" info@yourcompany.example.com</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"<i class=\"fa fa-map-marker fa-fw mr-2\"/>\n"
" <span class=\"o_force_ltr\">3575\n"
" Demo Buena Vista Avenue\n"
" </span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<i class=\"fa fa-map-marker fa-fw mr-2\"/>\n"
" <span class=\"o_force_ltr\">3575 Demo\n"
" Buena\n"
" Vista Avenue</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"<i class=\"fa fa-phone fa-fw mr-2\"/>\n"
" <span class=\"o_force_ltr\">+1\n"
" (650) 555-0111\n"
" </span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<i class=\"fa fa-phone fa-fw mr-2\"/>\n"
" <span class=\"o_force_ltr\">+1 (650)\n"
" 555-0111</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "<span class=\"d-none d-md-inline\">Ticket #</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Attachment</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Company</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Description</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Email To</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Email</span>\n"
" <span class=\"s_website_form_mark\">\n"
" *</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Name</span>\n"
" <span class=\"s_website_form_mark\">\n"
" *</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Phone </span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Priority</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Subject</span>\n"
" <span class=\"s_website_form_mark\">\n"
" *</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Analytic Account</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Assigned to</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Customer :</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Description :</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Priority :</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Task Name</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Total Hours Spend</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<strong>Tasks</strong>"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_needaction
msgid "Action Needed"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__active
msgid "Active"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_ids
msgid "Activities"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_exception_decoration
msgid "Activity Exception Decoration"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_state
msgid "Activity State"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_type_icon
msgid "Activity Type Icon"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_attachment_count
msgid "Attachment Count"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__billable
msgid "Billable"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_project_task__ticket_billed
msgid "Billed"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__closing_stage
msgid "Closing Stage"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__color
msgid "Color"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_res_config_settings
msgid "Config Settings"
msgstr "Konfigurationseinstellungen"
#. module: odoo_website_helpdesk
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk_configuration
msgid "Configuration"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"Contact us about anything related to our\n"
" company or services.<br/>\n"
" We'll do our best to get back to you as soon\n"
" as possible."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__cost
msgid "Cost per hour"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Create Invoice"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__create_task
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__create_task
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__show_create_task
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Create Task"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_res_config_settings__show_create_task
msgid "Create Tasks"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__create_uid
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__create_uid
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__create_uid
msgid "Created by"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__create_date
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__create_date
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__create_date
msgid "Created on"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Customer :"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__customer_name
msgid "Customer Name"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "Date"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Delete"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__description
msgid "Description"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__display_name
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__display_name
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__display_name
msgid "Display Name"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Dropdown menu"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Edit..."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__email
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__email
msgid "Email"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_team_form
msgid "Enable for allowing team to create tasks from tickets"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_res_config_settings_view_form
msgid "Enable to create tasks from tickets"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__end_date
msgid "End Date"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__folded
msgid "Folded in Kanban"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_follower_ids
msgid "Followers"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_partner_ids
msgid "Followers (Partners)"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__activity_type_icon
msgid "Font awesome icon e.g. fa-tasks"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__has_message
msgid "Has Message"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_home_menu_tickets
msgid "HelpDesk Tickets"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.actions.act_window,name:odoo_website_helpdesk.action_helpdesk
#: model:ir.actions.act_window,name:odoo_website_helpdesk.action_helpdesk_team
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk
#: model:website.menu,name:odoo_website_helpdesk.website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_res_config_settings_view_form
msgid "Helpdesk"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_help_team
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__team_id
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk_team
msgid "Helpdesk Team"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.actions.act_window,name:odoo_website_helpdesk.action_helpdesk_general_settings
#: model:ir.model,name:odoo_website_helpdesk.model_help_ticket
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.help_ticket_view_calendar
msgid "Helpdesk Ticket"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.ui.menu,name:odoo_website_helpdesk.helpdesk_tickets
msgid "Helpdesk Tickets"
msgstr "Helpdesk-tickets"
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__3
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "High"
msgstr "Hoog"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__id
msgid "ID"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_exception_icon
msgid "Icon"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__activity_exception_icon
msgid "Icon to indicate an exception activity."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_needaction
msgid "If checked, new messages require your attention."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_has_error
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_has_sms_error
msgid "If checked, some messages have a delivery error."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__invoice_ids
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Invoices"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_is_follower
msgid "Is Follower"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Issue Description"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Issue description in detail"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_account_move
msgid "Journal Entry"
msgstr "Buchungssatz"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team____last_update
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket____last_update
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage____last_update
msgid "Last Modified on"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__write_uid
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__write_uid
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__write_uid
msgid "Last Updated by"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__write_date
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__write_date
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__write_date
msgid "Last Updated on"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__1
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Low"
msgstr "Laag"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_main_attachment_id
msgid "Main Attachment"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__member_ids
msgid "Members"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Mention your Issue here"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_has_error
msgid "Message Delivery error"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_ids
msgid "Messages"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__my_activity_date_deadline
msgid "My Activity Deadline"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid "My Company"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "My Tickets"
msgstr "Mijn kaartjes"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__name
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__name
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__name
msgid "Name"
msgstr ""
#. module: odoo_website_helpdesk
#: code:addons/odoo_website_helpdesk/models/helpdesk.py:0
#, python-format
msgid "New"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_date_deadline
msgid "Next Activity Deadline"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_summary
msgid "Next Activity Summary"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_type_id
msgid "Next Activity Type"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__2
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Normal"
msgstr "Normaal"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_needaction_counter
msgid "Number of Actions"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_has_error_counter
msgid "Number of errors"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_needaction_counter
msgid "Number of messages which requires an action"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_has_error_counter
msgid "Number of messages with delivery error"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__phone
msgid "Phone"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__priority
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "Priority"
msgstr "Prioriteit"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Priority :"
msgstr "Prioriteit :"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__product_id
msgid "Product"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__project_id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__project_id
msgid "Project"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Provide the reason in detail"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__public_ticket
msgid "Public Ticket"
msgstr "Openbaar kaartje"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_user_id
msgid "Responsible User"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_has_sms_error
msgid "SMS Delivery error"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__sequence
msgid "Sequence"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__service_product_id
msgid "Service Product"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk_settings
msgid "Settings"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__stage_id
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "Stage"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.actions.act_window,name:odoo_website_helpdesk.action_helpdesk_stage
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk_stage
msgid "Stages"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__start_date
msgid "Start Date"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__activity_state
msgid ""
"Status based on activities\n"
"Overdue: Due date is already passed\n"
"Today: Activity date is today\n"
"Planned: Future activities."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__subject
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "Subject"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Subject :"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Submit"
msgstr "Indienen"
#. module: odoo_website_helpdesk
#: model:ir.ui.menu,name:odoo_website_helpdesk.helpdesk_management
msgid "Support"
msgstr "Steun"
#. module: odoo_website_helpdesk
#: model:ir.actions.report,name:odoo_website_helpdesk.report_ticket
msgid "Support Ticket"
msgstr "Ondersteuningsticket"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Support Tickets"
msgstr "Ondersteuningstickets"
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_project_task
msgid "Task"
msgstr "Aufgabe"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__task_ids
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_team_form
msgid "Tasks"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Team :"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid "Thank You!"
msgstr ""
#. module: odoo_website_helpdesk
#: code:addons/odoo_website_helpdesk/controller/website_form.py:0
#, python-format
msgid "The form's specified model does not exist"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "There are currently no tickets issued for your account."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_account_bank_statement_line__ticket_id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_account_move__ticket_id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_account_payment__ticket_id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_project_task__ticket_id
msgid "Ticket"
msgstr "Ticket"
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_ticket_stage
msgid "Ticket Stage"
msgstr "Ticket-fase"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_view_activity
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_home_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_home_menu_tickets
msgid "Tickets"
msgstr "Kaartjes"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__activity_exception_decoration
msgid "Type of the exception activity on record."
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"Very\n"
" Low"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__4
msgid "Very High"
msgstr "Heel hoog"
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__0
msgid "Very Low"
msgstr "Heel laag"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"We will get back\n"
" to you shortly."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__website_message_ids
msgid "Website Messages"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__website_message_ids
msgid "Website communication history"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid "Your Ticket"
msgstr "Uw kaartje"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__customer_id
msgid "customer"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"has been registered\n"
" <b>successfully</b>"
msgstr ""

836
odoo_website_helpdesk/i18n/es_AR.po

@ -1,836 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * odoo_website_helpdesk
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-02-14 12:49+0000\n"
"PO-Revision-Date: 2023-02-14 12:49+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "&amp;nbsp;"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"<i class=\"fa fa-1x fa-fw fa-envelope mr-2\"/>\n"
" <span>\n"
" info@yourcompany.example.com\n"
" </span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<i class=\"fa fa-1x fa-fw fa-envelope mr-2\"/>\n"
" <span>\n"
" info@yourcompany.example.com</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"<i class=\"fa fa-map-marker fa-fw mr-2\"/>\n"
" <span class=\"o_force_ltr\">3575\n"
" Demo Buena Vista Avenue\n"
" </span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<i class=\"fa fa-map-marker fa-fw mr-2\"/>\n"
" <span class=\"o_force_ltr\">3575 Demo\n"
" Buena\n"
" Vista Avenue</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"<i class=\"fa fa-phone fa-fw mr-2\"/>\n"
" <span class=\"o_force_ltr\">+1\n"
" (650) 555-0111\n"
" </span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<i class=\"fa fa-phone fa-fw mr-2\"/>\n"
" <span class=\"o_force_ltr\">+1 (650)\n"
" 555-0111</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "<span class=\"d-none d-md-inline\">Ticket #</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Attachment</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Company</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Description</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Email To</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Email</span>\n"
" <span class=\"s_website_form_mark\">\n"
" *</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Name</span>\n"
" <span class=\"s_website_form_mark\">\n"
" *</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Phone </span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Priority</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Subject</span>\n"
" <span class=\"s_website_form_mark\">\n"
" *</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Analytic Account</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Assigned to</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Customer :</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Description :</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Priority :</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Task Name</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Total Hours Spend</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<strong>Tasks</strong>"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_needaction
msgid "Action Needed"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__active
msgid "Active"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_ids
msgid "Activities"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_exception_decoration
msgid "Activity Exception Decoration"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_state
msgid "Activity State"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_type_icon
msgid "Activity Type Icon"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_attachment_count
msgid "Attachment Count"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__billable
msgid "Billable"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_project_task__ticket_billed
msgid "Billed"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__closing_stage
msgid "Closing Stage"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__color
msgid "Color"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_res_config_settings
msgid "Config Settings"
msgstr "Opciones de configuración"
#. module: odoo_website_helpdesk
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk_configuration
msgid "Configuration"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"Contact us about anything related to our\n"
" company or services.<br/>\n"
" We'll do our best to get back to you as soon\n"
" as possible."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__cost
msgid "Cost per hour"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Create Invoice"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__create_task
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__create_task
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__show_create_task
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Create Task"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_res_config_settings__show_create_task
msgid "Create Tasks"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__create_uid
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__create_uid
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__create_uid
msgid "Created by"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__create_date
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__create_date
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__create_date
msgid "Created on"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Customer :"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__customer_name
msgid "Customer Name"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "Date"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Delete"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__description
msgid "Description"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__display_name
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__display_name
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__display_name
msgid "Display Name"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Dropdown menu"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Edit..."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__email
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__email
msgid "Email"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_team_form
msgid "Enable for allowing team to create tasks from tickets"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_res_config_settings_view_form
msgid "Enable to create tasks from tickets"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__end_date
msgid "End Date"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__folded
msgid "Folded in Kanban"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_follower_ids
msgid "Followers"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_partner_ids
msgid "Followers (Partners)"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__activity_type_icon
msgid "Font awesome icon e.g. fa-tasks"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__has_message
msgid "Has Message"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_home_menu_tickets
msgid "HelpDesk Tickets"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.actions.act_window,name:odoo_website_helpdesk.action_helpdesk
#: model:ir.actions.act_window,name:odoo_website_helpdesk.action_helpdesk_team
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk
#: model:website.menu,name:odoo_website_helpdesk.website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_res_config_settings_view_form
msgid "Helpdesk"
msgstr "Mesa de ayuda"
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_help_team
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__team_id
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk_team
msgid "Helpdesk Team"
msgstr "Equipo de asistencia técnica"
#. module: odoo_website_helpdesk
#: model:ir.actions.act_window,name:odoo_website_helpdesk.action_helpdesk_general_settings
#: model:ir.model,name:odoo_website_helpdesk.model_help_ticket
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.help_ticket_view_calendar
msgid "Helpdesk Ticket"
msgstr "Ticket de asistencia técnica"
#. module: odoo_website_helpdesk
#: model:ir.ui.menu,name:odoo_website_helpdesk.helpdesk_tickets
msgid "Helpdesk Tickets"
msgstr "Tickets de la mesa de ayuda"
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__3
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "High"
msgstr "Alto"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__id
msgid "ID"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_exception_icon
msgid "Icon"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__activity_exception_icon
msgid "Icon to indicate an exception activity."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_needaction
msgid "If checked, new messages require your attention."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_has_error
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_has_sms_error
msgid "If checked, some messages have a delivery error."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__invoice_ids
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Invoices"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_is_follower
msgid "Is Follower"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Issue Description"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Issue description in detail"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_account_move
msgid "Journal Entry"
msgstr "Asiento contable"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team____last_update
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket____last_update
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage____last_update
msgid "Last Modified on"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__write_uid
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__write_uid
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__write_uid
msgid "Last Updated by"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__write_date
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__write_date
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__write_date
msgid "Last Updated on"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__1
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Low"
msgstr "Bajo"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_main_attachment_id
msgid "Main Attachment"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__member_ids
msgid "Members"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Mention your Issue here"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_has_error
msgid "Message Delivery error"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_ids
msgid "Messages"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__my_activity_date_deadline
msgid "My Activity Deadline"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid "My Company"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "My Tickets"
msgstr "Mis entradas"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__name
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__name
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__name
msgid "Name"
msgstr ""
#. module: odoo_website_helpdesk
#: code:addons/odoo_website_helpdesk/models/helpdesk.py:0
#, python-format
msgid "New"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_date_deadline
msgid "Next Activity Deadline"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_summary
msgid "Next Activity Summary"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_type_id
msgid "Next Activity Type"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__2
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Normal"
msgstr "Normal"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_needaction_counter
msgid "Number of Actions"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_has_error_counter
msgid "Number of errors"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_needaction_counter
msgid "Number of messages which requires an action"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_has_error_counter
msgid "Number of messages with delivery error"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__phone
msgid "Phone"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__priority
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "Priority"
msgstr "Prioridad"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Priority :"
msgstr "Prioridad :"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__product_id
msgid "Product"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__project_id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__project_id
msgid "Project"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Provide the reason in detail"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__public_ticket
msgid "Public Ticket"
msgstr "Boleto Público"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_user_id
msgid "Responsible User"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_has_sms_error
msgid "SMS Delivery error"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__sequence
msgid "Sequence"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__service_product_id
msgid "Service Product"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk_settings
msgid "Settings"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__stage_id
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "Stage"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.actions.act_window,name:odoo_website_helpdesk.action_helpdesk_stage
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk_stage
msgid "Stages"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__start_date
msgid "Start Date"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__activity_state
msgid ""
"Status based on activities\n"
"Overdue: Due date is already passed\n"
"Today: Activity date is today\n"
"Planned: Future activities."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__subject
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "Subject"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Subject :"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Submit"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.ui.menu,name:odoo_website_helpdesk.helpdesk_management
msgid "Support"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.actions.report,name:odoo_website_helpdesk.report_ticket
msgid "Support Ticket"
msgstr "ticket de soporte"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Support Tickets"
msgstr "entradas de soporte"
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_project_task
msgid "Task"
msgstr "Tarea"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__task_ids
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_team_form
msgid "Tasks"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Team :"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid "Thank You!"
msgstr ""
#. module: odoo_website_helpdesk
#: code:addons/odoo_website_helpdesk/controller/website_form.py:0
#, python-format
msgid "The form's specified model does not exist"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "There are currently no tickets issued for your account."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_account_bank_statement_line__ticket_id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_account_move__ticket_id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_account_payment__ticket_id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_project_task__ticket_id
msgid "Ticket"
msgstr "Boleto"
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_ticket_stage
msgid "Ticket Stage"
msgstr "Etapa de entradas"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_view_activity
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_home_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_home_menu_tickets
msgid "Tickets"
msgstr "Entradas"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__activity_exception_decoration
msgid "Type of the exception activity on record."
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"Very\n"
" Low"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__4
msgid "Very High"
msgstr "Muy alto"
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__0
msgid "Very Low"
msgstr "Muy bajo"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"We will get back\n"
" to you shortly."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__website_message_ids
msgid "Website Messages"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__website_message_ids
msgid "Website communication history"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid "Your Ticket"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__customer_id
msgid "customer"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"has been registered\n"
" <b>successfully</b>"
msgstr ""

837
odoo_website_helpdesk/i18n/fr_BE.po

@ -1,837 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * odoo_website_helpdesk
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-02-14 12:44+0000\n"
"PO-Revision-Date: 2023-02-14 12:44+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "&amp;nbsp;"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"<i class=\"fa fa-1x fa-fw fa-envelope mr-2\"/>\n"
" <span>\n"
" info@yourcompany.example.com\n"
" </span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<i class=\"fa fa-1x fa-fw fa-envelope mr-2\"/>\n"
" <span>\n"
" info@yourcompany.example.com</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"<i class=\"fa fa-map-marker fa-fw mr-2\"/>\n"
" <span class=\"o_force_ltr\">3575\n"
" Demo Buena Vista Avenue\n"
" </span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<i class=\"fa fa-map-marker fa-fw mr-2\"/>\n"
" <span class=\"o_force_ltr\">3575 Demo\n"
" Buena\n"
" Vista Avenue</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"<i class=\"fa fa-phone fa-fw mr-2\"/>\n"
" <span class=\"o_force_ltr\">+1\n"
" (650) 555-0111\n"
" </span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<i class=\"fa fa-phone fa-fw mr-2\"/>\n"
" <span class=\"o_force_ltr\">+1 (650)\n"
" 555-0111</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "<span class=\"d-none d-md-inline\">Ticket #</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Attachment</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Company</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Description</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Email To</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Email</span>\n"
" <span class=\"s_website_form_mark\">\n"
" *</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Name</span>\n"
" <span class=\"s_website_form_mark\">\n"
" *</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Phone </span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Priority</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Subject</span>\n"
" <span class=\"s_website_form_mark\">\n"
" *</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Analytic Account</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Assigned to</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Customer :</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Description :</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Priority :</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Task Name</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Total Hours Spend</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<strong>Tasks</strong>"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_needaction
msgid "Action Needed"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__active
msgid "Active"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_ids
msgid "Activities"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_exception_decoration
msgid "Activity Exception Decoration"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_state
msgid "Activity State"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_type_icon
msgid "Activity Type Icon"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_attachment_count
msgid "Attachment Count"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__billable
msgid "Billable"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_project_task__ticket_billed
msgid "Billed"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__closing_stage
msgid "Closing Stage"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__color
msgid "Color"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_res_config_settings
msgid "Config Settings"
msgstr "Paramètres de config"
#. module: odoo_website_helpdesk
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk_configuration
msgid "Configuration"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"Contact us about anything related to our\n"
" company or services.<br/>\n"
" We'll do our best to get back to you as soon\n"
" as possible."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__cost
msgid "Cost per hour"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Create Invoice"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__create_task
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__create_task
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__show_create_task
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Create Task"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_res_config_settings__show_create_task
msgid "Create Tasks"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__create_uid
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__create_uid
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__create_uid
msgid "Created by"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__create_date
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__create_date
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__create_date
msgid "Created on"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Customer :"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__customer_name
msgid "Customer Name"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "Date"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Delete"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__description
msgid "Description"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__display_name
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__display_name
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__display_name
msgid "Display Name"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Dropdown menu"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Edit..."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__email
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__email
msgid "Email"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_team_form
msgid "Enable for allowing team to create tasks from tickets"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_res_config_settings_view_form
msgid "Enable to create tasks from tickets"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__end_date
msgid "End Date"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__folded
msgid "Folded in Kanban"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_follower_ids
msgid "Followers"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_partner_ids
msgid "Followers (Partners)"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__activity_type_icon
msgid "Font awesome icon e.g. fa-tasks"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__has_message
msgid "Has Message"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_home_menu_tickets
msgid "HelpDesk Tickets"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.actions.act_window,name:odoo_website_helpdesk.action_helpdesk
#: model:ir.actions.act_window,name:odoo_website_helpdesk.action_helpdesk_team
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk
#: model:website.menu,name:odoo_website_helpdesk.website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_res_config_settings_view_form
msgid "Helpdesk"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_help_team
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__team_id
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk_team
msgid "Helpdesk Team"
msgstr "Équipe d'assistance"
#. module: odoo_website_helpdesk
#: model:ir.actions.act_window,name:odoo_website_helpdesk.action_helpdesk_general_settings
#: model:ir.model,name:odoo_website_helpdesk.model_help_ticket
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.help_ticket_view_calendar
msgid "Helpdesk Ticket"
msgstr "Ticket d'assistance"
#. module: odoo_website_helpdesk
#: model:ir.ui.menu,name:odoo_website_helpdesk.helpdesk_tickets
msgid "Helpdesk Tickets"
msgstr "Billets d'assistance"
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__3
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "High"
msgstr "Haut"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__id
msgid "ID"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_exception_icon
msgid "Icon"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__activity_exception_icon
msgid "Icon to indicate an exception activity."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_needaction
msgid "If checked, new messages require your attention."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_has_error
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_has_sms_error
msgid "If checked, some messages have a delivery error."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__invoice_ids
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Invoices"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_is_follower
msgid "Is Follower"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Issue Description"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Issue description in detail"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_account_move
msgid "Journal Entry"
msgstr "Pièce comptable"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team____last_update
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket____last_update
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage____last_update
msgid "Last Modified on"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__write_uid
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__write_uid
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__write_uid
msgid "Last Updated by"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__write_date
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__write_date
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__write_date
msgid "Last Updated on"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__1
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Low"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_main_attachment_id
msgid "Main Attachment"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__member_ids
msgid "Members"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Mention your Issue here"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_has_error
msgid "Message Delivery error"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_ids
msgid "Messages"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__my_activity_date_deadline
msgid "My Activity Deadline"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid "My Company"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "My Tickets"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__name
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__name
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__name
msgid "Name"
msgstr ""
#. module: odoo_website_helpdesk
#: code:addons/odoo_website_helpdesk/models/helpdesk.py:0
#, python-format
msgid "New"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_date_deadline
msgid "Next Activity Deadline"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_summary
msgid "Next Activity Summary"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_type_id
msgid "Next Activity Type"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__2
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Normal"
msgstr "Normale"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_needaction_counter
msgid "Number of Actions"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_has_error_counter
msgid "Number of errors"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_needaction_counter
msgid "Number of messages which requires an action"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_has_error_counter
msgid "Number of messages with delivery error"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__phone
msgid "Phone"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__priority
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "Priority"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Priority :"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__product_id
msgid "Product"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__project_id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__project_id
msgid "Project"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Provide the reason in detail"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__public_ticket
msgid "Public Ticket"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_user_id
msgid "Responsible User"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_has_sms_error
msgid "SMS Delivery error"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__sequence
msgid "Sequence"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__service_product_id
msgid "Service Product"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk_settings
msgid "Settings"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__stage_id
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "Stage"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.actions.act_window,name:odoo_website_helpdesk.action_helpdesk_stage
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk_stage
msgid "Stages"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__start_date
msgid "Start Date"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__activity_state
msgid ""
"Status based on activities\n"
"Overdue: Due date is already passed\n"
"Today: Activity date is today\n"
"Planned: Future activities."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__subject
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "Subject"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Subject :"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Submit"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.ui.menu,name:odoo_website_helpdesk.helpdesk_management
msgid "Support"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.actions.report,name:odoo_website_helpdesk.report_ticket
msgid "Support Ticket"
msgstr "Billet d'assistance"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Support Tickets"
msgstr "Billets d'assistance"
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_project_task
msgid "Task"
msgstr "Tâche"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__task_ids
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_team_form
msgid "Tasks"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Team :"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid "Thank You!"
msgstr ""
#. module: odoo_website_helpdesk
#: code:addons/odoo_website_helpdesk/controller/website_form.py:0
#, python-format
msgid "The form's specified model does not exist"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "There are currently no tickets issued for your account."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_account_bank_statement_line__ticket_id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_account_move__ticket_id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_account_payment__ticket_id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_project_task__ticket_id
msgid "Ticket"
msgstr "Billet"
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_ticket_stage
msgid "Ticket Stage"
msgstr "Billet étape"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_view_activity
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_home_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_home_menu_tickets
msgid "Tickets"
msgstr "Des billets"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__activity_exception_decoration
msgid "Type of the exception activity on record."
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"Very\n"
" Low"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__4
msgid "Very High"
msgstr "Très haut"
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__0
msgid "Very Low"
msgstr "Très lent"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"We will get back\n"
" to you shortly."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__website_message_ids
msgid "Website Messages"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__website_message_ids
msgid "Website communication history"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid "Your Ticket"
msgstr "Votre billet"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__customer_id
msgid "customer"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"has been registered\n"
" <b>successfully</b>"
msgstr ""

837
odoo_website_helpdesk/i18n/uk_UA.po

@ -1,837 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * odoo_website_helpdesk
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-02-14 12:49+0000\n"
"PO-Revision-Date: 2023-02-14 12:49+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "&amp;nbsp;"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"<i class=\"fa fa-1x fa-fw fa-envelope mr-2\"/>\n"
" <span>\n"
" info@yourcompany.example.com\n"
" </span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<i class=\"fa fa-1x fa-fw fa-envelope mr-2\"/>\n"
" <span>\n"
" info@yourcompany.example.com</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"<i class=\"fa fa-map-marker fa-fw mr-2\"/>\n"
" <span class=\"o_force_ltr\">3575\n"
" Demo Buena Vista Avenue\n"
" </span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<i class=\"fa fa-map-marker fa-fw mr-2\"/>\n"
" <span class=\"o_force_ltr\">3575 Demo\n"
" Buena\n"
" Vista Avenue</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"<i class=\"fa fa-phone fa-fw mr-2\"/>\n"
" <span class=\"o_force_ltr\">+1\n"
" (650) 555-0111\n"
" </span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<i class=\"fa fa-phone fa-fw mr-2\"/>\n"
" <span class=\"o_force_ltr\">+1 (650)\n"
" 555-0111</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "<span class=\"d-none d-md-inline\">Ticket #</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Attachment</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Company</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Description</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Email To</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Email</span>\n"
" <span class=\"s_website_form_mark\">\n"
" *</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Name</span>\n"
" <span class=\"s_website_form_mark\">\n"
" *</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Phone </span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Priority</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Subject</span>\n"
" <span class=\"s_website_form_mark\">\n"
" *</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Analytic Account</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Assigned to</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Customer :</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Description :</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Priority :</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Task Name</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Total Hours Spend</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<strong>Tasks</strong>"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_needaction
msgid "Action Needed"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__active
msgid "Active"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_ids
msgid "Activities"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_exception_decoration
msgid "Activity Exception Decoration"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_state
msgid "Activity State"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_type_icon
msgid "Activity Type Icon"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_attachment_count
msgid "Attachment Count"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__billable
msgid "Billable"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_project_task__ticket_billed
msgid "Billed"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__closing_stage
msgid "Closing Stage"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__color
msgid "Color"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_res_config_settings
msgid "Config Settings"
msgstr "Налаштування"
#. module: odoo_website_helpdesk
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk_configuration
msgid "Configuration"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"Contact us about anything related to our\n"
" company or services.<br/>\n"
" We'll do our best to get back to you as soon\n"
" as possible."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__cost
msgid "Cost per hour"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Create Invoice"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__create_task
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__create_task
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__show_create_task
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Create Task"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_res_config_settings__show_create_task
msgid "Create Tasks"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__create_uid
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__create_uid
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__create_uid
msgid "Created by"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__create_date
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__create_date
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__create_date
msgid "Created on"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Customer :"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__customer_name
msgid "Customer Name"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "Date"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Delete"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__description
msgid "Description"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__display_name
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__display_name
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__display_name
msgid "Display Name"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Dropdown menu"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Edit..."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__email
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__email
msgid "Email"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_team_form
msgid "Enable for allowing team to create tasks from tickets"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_res_config_settings_view_form
msgid "Enable to create tasks from tickets"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__end_date
msgid "End Date"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__folded
msgid "Folded in Kanban"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_follower_ids
msgid "Followers"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_partner_ids
msgid "Followers (Partners)"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__activity_type_icon
msgid "Font awesome icon e.g. fa-tasks"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__has_message
msgid "Has Message"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_home_menu_tickets
msgid "HelpDesk Tickets"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.actions.act_window,name:odoo_website_helpdesk.action_helpdesk
#: model:ir.actions.act_window,name:odoo_website_helpdesk.action_helpdesk_team
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk
#: model:website.menu,name:odoo_website_helpdesk.website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_res_config_settings_view_form
msgid "Helpdesk"
msgstr "Довідкова"
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_help_team
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__team_id
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk_team
msgid "Helpdesk Team"
msgstr "Команда служби підтримки"
#. module: odoo_website_helpdesk
#: model:ir.actions.act_window,name:odoo_website_helpdesk.action_helpdesk_general_settings
#: model:ir.model,name:odoo_website_helpdesk.model_help_ticket
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.help_ticket_view_calendar
msgid "Helpdesk Ticket"
msgstr "Квиток у службу підтримки"
#. module: odoo_website_helpdesk
#: model:ir.ui.menu,name:odoo_website_helpdesk.helpdesk_tickets
msgid "Helpdesk Tickets"
msgstr "Квитки в службу підтримки"
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__3
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "High"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__id
msgid "ID"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_exception_icon
msgid "Icon"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__activity_exception_icon
msgid "Icon to indicate an exception activity."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_needaction
msgid "If checked, new messages require your attention."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_has_error
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_has_sms_error
msgid "If checked, some messages have a delivery error."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__invoice_ids
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Invoices"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_is_follower
msgid "Is Follower"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Issue Description"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Issue description in detail"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_account_move
msgid "Journal Entry"
msgstr "Запис у журналі"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team____last_update
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket____last_update
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage____last_update
msgid "Last Modified on"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__write_uid
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__write_uid
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__write_uid
msgid "Last Updated by"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__write_date
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__write_date
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__write_date
msgid "Last Updated on"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__1
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Low"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_main_attachment_id
msgid "Main Attachment"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__member_ids
msgid "Members"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Mention your Issue here"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_has_error
msgid "Message Delivery error"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_ids
msgid "Messages"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__my_activity_date_deadline
msgid "My Activity Deadline"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid "My Company"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "My Tickets"
msgstr "Мої квитки"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__name
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__name
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__name
msgid "Name"
msgstr ""
#. module: odoo_website_helpdesk
#: code:addons/odoo_website_helpdesk/models/helpdesk.py:0
#, python-format
msgid "New"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_date_deadline
msgid "Next Activity Deadline"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_summary
msgid "Next Activity Summary"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_type_id
msgid "Next Activity Type"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__2
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Normal"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_needaction_counter
msgid "Number of Actions"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_has_error_counter
msgid "Number of errors"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_needaction_counter
msgid "Number of messages which requires an action"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_has_error_counter
msgid "Number of messages with delivery error"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__phone
msgid "Phone"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__priority
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "Priority"
msgstr "Пріоритет"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Priority :"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__product_id
msgid "Product"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__project_id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__project_id
msgid "Project"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Provide the reason in detail"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__public_ticket
msgid "Public Ticket"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_user_id
msgid "Responsible User"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_has_sms_error
msgid "SMS Delivery error"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__sequence
msgid "Sequence"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__service_product_id
msgid "Service Product"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk_settings
msgid "Settings"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__stage_id
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "Stage"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.actions.act_window,name:odoo_website_helpdesk.action_helpdesk_stage
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk_stage
msgid "Stages"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__start_date
msgid "Start Date"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__activity_state
msgid ""
"Status based on activities\n"
"Overdue: Due date is already passed\n"
"Today: Activity date is today\n"
"Planned: Future activities."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__subject
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "Subject"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Subject :"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Submit"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.ui.menu,name:odoo_website_helpdesk.helpdesk_management
msgid "Support"
msgstr "Підтримка"
#. module: odoo_website_helpdesk
#: model:ir.actions.report,name:odoo_website_helpdesk.report_ticket
msgid "Support Ticket"
msgstr "Квиток підтримки"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Support Tickets"
msgstr "Квитки підтримки"
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_project_task
msgid "Task"
msgstr "Завдання"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__task_ids
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_team_form
msgid "Tasks"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Team :"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid "Thank You!"
msgstr ""
#. module: odoo_website_helpdesk
#: code:addons/odoo_website_helpdesk/controller/website_form.py:0
#, python-format
msgid "The form's specified model does not exist"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "There are currently no tickets issued for your account."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_account_bank_statement_line__ticket_id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_account_move__ticket_id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_account_payment__ticket_id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_project_task__ticket_id
msgid "Ticket"
msgstr "Квиток"
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_ticket_stage
msgid "Ticket Stage"
msgstr "Квитковий етап"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_view_activity
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_home_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_home_menu_tickets
msgid "Tickets"
msgstr "Квитки"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__activity_exception_decoration
msgid "Type of the exception activity on record."
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"Very\n"
" Low"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__4
msgid "Very High"
msgstr "Дуже високо"
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__0
msgid "Very Low"
msgstr "Дуже низький"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"We will get back\n"
" to you shortly."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__website_message_ids
msgid "Website Messages"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__website_message_ids
msgid "Website communication history"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid "Your Ticket"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__customer_id
msgid "customer"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"has been registered\n"
" <b>successfully</b>"
msgstr ""

837
odoo_website_helpdesk/i18n/zh_CN.po

@ -1,837 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * odoo_website_helpdesk
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-02-14 12:48+0000\n"
"PO-Revision-Date: 2023-02-14 12:48+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "&amp;nbsp;"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"<i class=\"fa fa-1x fa-fw fa-envelope mr-2\"/>\n"
" <span>\n"
" info@yourcompany.example.com\n"
" </span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<i class=\"fa fa-1x fa-fw fa-envelope mr-2\"/>\n"
" <span>\n"
" info@yourcompany.example.com</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"<i class=\"fa fa-map-marker fa-fw mr-2\"/>\n"
" <span class=\"o_force_ltr\">3575\n"
" Demo Buena Vista Avenue\n"
" </span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<i class=\"fa fa-map-marker fa-fw mr-2\"/>\n"
" <span class=\"o_force_ltr\">3575 Demo\n"
" Buena\n"
" Vista Avenue</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"<i class=\"fa fa-phone fa-fw mr-2\"/>\n"
" <span class=\"o_force_ltr\">+1\n"
" (650) 555-0111\n"
" </span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<i class=\"fa fa-phone fa-fw mr-2\"/>\n"
" <span class=\"o_force_ltr\">+1 (650)\n"
" 555-0111</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "<span class=\"d-none d-md-inline\">Ticket #</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Attachment</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Company</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Description</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Email To</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Email</span>\n"
" <span class=\"s_website_form_mark\">\n"
" *</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Name</span>\n"
" <span class=\"s_website_form_mark\">\n"
" *</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Phone </span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Priority</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Subject</span>\n"
" <span class=\"s_website_form_mark\">\n"
" *</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Analytic Account</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Assigned to</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Customer :</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Description :</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Priority :</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Task Name</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Total Hours Spend</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<strong>Tasks</strong>"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_needaction
msgid "Action Needed"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__active
msgid "Active"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_ids
msgid "Activities"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_exception_decoration
msgid "Activity Exception Decoration"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_state
msgid "Activity State"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_type_icon
msgid "Activity Type Icon"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_attachment_count
msgid "Attachment Count"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__billable
msgid "Billable"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_project_task__ticket_billed
msgid "Billed"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__closing_stage
msgid "Closing Stage"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__color
msgid "Color"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_res_config_settings
msgid "Config Settings"
msgstr "配置设置"
#. module: odoo_website_helpdesk
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk_configuration
msgid "Configuration"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"Contact us about anything related to our\n"
" company or services.<br/>\n"
" We'll do our best to get back to you as soon\n"
" as possible."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__cost
msgid "Cost per hour"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Create Invoice"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__create_task
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__create_task
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__show_create_task
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Create Task"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_res_config_settings__show_create_task
msgid "Create Tasks"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__create_uid
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__create_uid
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__create_uid
msgid "Created by"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__create_date
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__create_date
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__create_date
msgid "Created on"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Customer :"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__customer_name
msgid "Customer Name"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "Date"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Delete"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__description
msgid "Description"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__display_name
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__display_name
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__display_name
msgid "Display Name"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Dropdown menu"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Edit..."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__email
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__email
msgid "Email"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_team_form
msgid "Enable for allowing team to create tasks from tickets"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_res_config_settings_view_form
msgid "Enable to create tasks from tickets"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__end_date
msgid "End Date"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__folded
msgid "Folded in Kanban"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_follower_ids
msgid "Followers"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_partner_ids
msgid "Followers (Partners)"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__activity_type_icon
msgid "Font awesome icon e.g. fa-tasks"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__has_message
msgid "Has Message"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_home_menu_tickets
msgid "HelpDesk Tickets"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.actions.act_window,name:odoo_website_helpdesk.action_helpdesk
#: model:ir.actions.act_window,name:odoo_website_helpdesk.action_helpdesk_team
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk
#: model:website.menu,name:odoo_website_helpdesk.website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_res_config_settings_view_form
msgid "Helpdesk"
msgstr "服务台团队"
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_help_team
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__team_id
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk_team
msgid "Helpdesk Team"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.actions.act_window,name:odoo_website_helpdesk.action_helpdesk_general_settings
#: model:ir.model,name:odoo_website_helpdesk.model_help_ticket
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.help_ticket_view_calendar
msgid "Helpdesk Ticket"
msgstr "帮助台票"
#. module: odoo_website_helpdesk
#: model:ir.ui.menu,name:odoo_website_helpdesk.helpdesk_tickets
msgid "Helpdesk Tickets"
msgstr "帮助台门票"
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__3
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "High"
msgstr "高的"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__id
msgid "ID"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_exception_icon
msgid "Icon"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__activity_exception_icon
msgid "Icon to indicate an exception activity."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_needaction
msgid "If checked, new messages require your attention."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_has_error
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_has_sms_error
msgid "If checked, some messages have a delivery error."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__invoice_ids
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Invoices"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_is_follower
msgid "Is Follower"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Issue Description"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Issue description in detail"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_account_move
msgid "Journal Entry"
msgstr "会计凭证"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team____last_update
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket____last_update
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage____last_update
msgid "Last Modified on"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__write_uid
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__write_uid
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__write_uid
msgid "Last Updated by"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__write_date
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__write_date
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__write_date
msgid "Last Updated on"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__1
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Low"
msgstr "低的"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_main_attachment_id
msgid "Main Attachment"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__member_ids
msgid "Members"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Mention your Issue here"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_has_error
msgid "Message Delivery error"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_ids
msgid "Messages"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__my_activity_date_deadline
msgid "My Activity Deadline"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid "My Company"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "My Tickets"
msgstr "我的票"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__name
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__name
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__name
msgid "Name"
msgstr ""
#. module: odoo_website_helpdesk
#: code:addons/odoo_website_helpdesk/models/helpdesk.py:0
#, python-format
msgid "New"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_date_deadline
msgid "Next Activity Deadline"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_summary
msgid "Next Activity Summary"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_type_id
msgid "Next Activity Type"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__2
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Normal"
msgstr "普通的"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_needaction_counter
msgid "Number of Actions"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_has_error_counter
msgid "Number of errors"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_needaction_counter
msgid "Number of messages which requires an action"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_has_error_counter
msgid "Number of messages with delivery error"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__phone
msgid "Phone"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__priority
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "Priority"
msgstr "优先事项"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Priority :"
msgstr "优先事项 :"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__product_id
msgid "Product"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__project_id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__project_id
msgid "Project"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Provide the reason in detail"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__public_ticket
msgid "Public Ticket"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_user_id
msgid "Responsible User"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_has_sms_error
msgid "SMS Delivery error"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__sequence
msgid "Sequence"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__service_product_id
msgid "Service Product"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk_settings
msgid "Settings"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__stage_id
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "Stage"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.actions.act_window,name:odoo_website_helpdesk.action_helpdesk_stage
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk_stage
msgid "Stages"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__start_date
msgid "Start Date"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__activity_state
msgid ""
"Status based on activities\n"
"Overdue: Due date is already passed\n"
"Today: Activity date is today\n"
"Planned: Future activities."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__subject
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "Subject"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Subject :"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Submit"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.ui.menu,name:odoo_website_helpdesk.helpdesk_management
msgid "Support"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.actions.report,name:odoo_website_helpdesk.report_ticket
msgid "Support Ticket"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Support Tickets"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_project_task
msgid "Task"
msgstr "任务"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__task_ids
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_team_form
msgid "Tasks"
msgstr "任务"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Team :"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid "Thank You!"
msgstr ""
#. module: odoo_website_helpdesk
#: code:addons/odoo_website_helpdesk/controller/website_form.py:0
#, python-format
msgid "The form's specified model does not exist"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "There are currently no tickets issued for your account."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_account_bank_statement_line__ticket_id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_account_move__ticket_id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_account_payment__ticket_id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_project_task__ticket_id
msgid "Ticket"
msgstr "票"
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_ticket_stage
msgid "Ticket Stage"
msgstr "售票阶段"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_view_activity
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_home_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_home_menu_tickets
msgid "Tickets"
msgstr "门票"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__activity_exception_decoration
msgid "Type of the exception activity on record."
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"Very\n"
" Low"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__4
msgid "Very High"
msgstr "很高"
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__0
msgid "Very Low"
msgstr "非常低"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"We will get back\n"
" to you shortly."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__website_message_ids
msgid "Website Messages"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__website_message_ids
msgid "Website communication history"
msgstr "网站通讯记录"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid "Your Ticket"
msgstr "你的票"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__customer_id
msgid "customer"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"has been registered\n"
" <b>successfully</b>"
msgstr ""

837
odoo_website_helpdesk/i18n/zh_HK.po

@ -1,837 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * odoo_website_helpdesk
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-02-14 12:48+0000\n"
"PO-Revision-Date: 2023-02-14 12:48+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "&amp;nbsp;"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"<i class=\"fa fa-1x fa-fw fa-envelope mr-2\"/>\n"
" <span>\n"
" info@yourcompany.example.com\n"
" </span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<i class=\"fa fa-1x fa-fw fa-envelope mr-2\"/>\n"
" <span>\n"
" info@yourcompany.example.com</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"<i class=\"fa fa-map-marker fa-fw mr-2\"/>\n"
" <span class=\"o_force_ltr\">3575\n"
" Demo Buena Vista Avenue\n"
" </span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<i class=\"fa fa-map-marker fa-fw mr-2\"/>\n"
" <span class=\"o_force_ltr\">3575 Demo\n"
" Buena\n"
" Vista Avenue</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"<i class=\"fa fa-phone fa-fw mr-2\"/>\n"
" <span class=\"o_force_ltr\">+1\n"
" (650) 555-0111\n"
" </span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<i class=\"fa fa-phone fa-fw mr-2\"/>\n"
" <span class=\"o_force_ltr\">+1 (650)\n"
" 555-0111</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "<span class=\"d-none d-md-inline\">Ticket #</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Attachment</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Company</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Description</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Email To</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Email</span>\n"
" <span class=\"s_website_form_mark\">\n"
" *</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Name</span>\n"
" <span class=\"s_website_form_mark\">\n"
" *</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Phone </span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Priority</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"<span class=\"s_website_form_label_content\">\n"
" Subject</span>\n"
" <span class=\"s_website_form_mark\">\n"
" *</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Analytic Account</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Assigned to</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Customer :</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Description :</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Priority :</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Task Name</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<span>Total Hours Spend</span>"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.report_help_ticket
msgid "<strong>Tasks</strong>"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_needaction
msgid "Action Needed"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__active
msgid "Active"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_ids
msgid "Activities"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_exception_decoration
msgid "Activity Exception Decoration"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_state
msgid "Activity State"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_type_icon
msgid "Activity Type Icon"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_attachment_count
msgid "Attachment Count"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__billable
msgid "Billable"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_project_task__ticket_billed
msgid "Billed"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__closing_stage
msgid "Closing Stage"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__color
msgid "Color"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_res_config_settings
msgid "Config Settings"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk_configuration
msgid "Configuration"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"Contact us about anything related to our\n"
" company or services.<br/>\n"
" We'll do our best to get back to you as soon\n"
" as possible."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__cost
msgid "Cost per hour"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Create Invoice"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__create_task
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__create_task
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__show_create_task
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Create Task"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_res_config_settings__show_create_task
msgid "Create Tasks"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__create_uid
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__create_uid
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__create_uid
msgid "Created by"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__create_date
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__create_date
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__create_date
msgid "Created on"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Customer :"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__customer_name
msgid "Customer Name"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "Date"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Delete"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__description
msgid "Description"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__display_name
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__display_name
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__display_name
msgid "Display Name"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Dropdown menu"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Edit..."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__email
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__email
msgid "Email"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_team_form
msgid "Enable for allowing team to create tasks from tickets"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_res_config_settings_view_form
msgid "Enable to create tasks from tickets"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__end_date
msgid "End Date"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__folded
msgid "Folded in Kanban"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_follower_ids
msgid "Followers"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_partner_ids
msgid "Followers (Partners)"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__activity_type_icon
msgid "Font awesome icon e.g. fa-tasks"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__has_message
msgid "Has Message"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_home_menu_tickets
msgid "HelpDesk Tickets"
msgstr "服務台工單"
#. module: odoo_website_helpdesk
#: model:ir.actions.act_window,name:odoo_website_helpdesk.action_helpdesk
#: model:ir.actions.act_window,name:odoo_website_helpdesk.action_helpdesk_team
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk
#: model:website.menu,name:odoo_website_helpdesk.website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_res_config_settings_view_form
msgid "Helpdesk"
msgstr "服務台"
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_help_team
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__team_id
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk_team
msgid "Helpdesk Team"
msgstr "服務台團隊"
#. module: odoo_website_helpdesk
#: model:ir.actions.act_window,name:odoo_website_helpdesk.action_helpdesk_general_settings
#: model:ir.model,name:odoo_website_helpdesk.model_help_ticket
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.help_ticket_view_calendar
msgid "Helpdesk Ticket"
msgstr "幫助台票"
#. module: odoo_website_helpdesk
#: model:ir.ui.menu,name:odoo_website_helpdesk.helpdesk_tickets
msgid "Helpdesk Tickets"
msgstr "幫助台門票"
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__3
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "High"
msgstr "高的"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__id
msgid "ID"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_exception_icon
msgid "Icon"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__activity_exception_icon
msgid "Icon to indicate an exception activity."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_needaction
msgid "If checked, new messages require your attention."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_has_error
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_has_sms_error
msgid "If checked, some messages have a delivery error."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__invoice_ids
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Invoices"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_is_follower
msgid "Is Follower"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Issue Description"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Issue description in detail"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_account_move
msgid "Journal Entry"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team____last_update
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket____last_update
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage____last_update
msgid "Last Modified on"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__write_uid
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__write_uid
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__write_uid
msgid "Last Updated by"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__write_date
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__write_date
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__write_date
msgid "Last Updated on"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__1
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Low"
msgstr "低的"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_main_attachment_id
msgid "Main Attachment"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__member_ids
msgid "Members"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Mention your Issue here"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_has_error
msgid "Message Delivery error"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_ids
msgid "Messages"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__my_activity_date_deadline
msgid "My Activity Deadline"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid "My Company"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "My Tickets"
msgstr "我的票"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__name
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__name
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__name
msgid "Name"
msgstr ""
#. module: odoo_website_helpdesk
#: code:addons/odoo_website_helpdesk/models/helpdesk.py:0
#, python-format
msgid "New"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_date_deadline
msgid "Next Activity Deadline"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_summary
msgid "Next Activity Summary"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_type_id
msgid "Next Activity Type"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__2
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Normal"
msgstr "普通的"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_needaction_counter
msgid "Number of Actions"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_has_error_counter
msgid "Number of errors"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_needaction_counter
msgid "Number of messages which requires an action"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__message_has_error_counter
msgid "Number of messages with delivery error"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__phone
msgid "Phone"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__priority
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "Priority"
msgstr "優先事項"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Priority :"
msgstr "優先事項 :"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__product_id
msgid "Product"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_team__project_id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__project_id
msgid "Project"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
msgid "Provide the reason in detail"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__public_ticket
msgid "Public Ticket"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__activity_user_id
msgid "Responsible User"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__message_has_sms_error
msgid "SMS Delivery error"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_ticket_stage__sequence
msgid "Sequence"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__service_product_id
msgid "Service Product"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk_settings
msgid "Settings"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__stage_id
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "Stage"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.actions.act_window,name:odoo_website_helpdesk.action_helpdesk_stage
#: model:ir.ui.menu,name:odoo_website_helpdesk.menu_helpdesk_stage
msgid "Stages"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__start_date
msgid "Start Date"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__activity_state
msgid ""
"Status based on activities\n"
"Overdue: Due date is already passed\n"
"Today: Activity date is today\n"
"Planned: Future activities."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__subject
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "Subject"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Subject :"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Submit"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.ui.menu,name:odoo_website_helpdesk.helpdesk_management
msgid "Support"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.actions.report,name:odoo_website_helpdesk.report_ticket
msgid "Support Ticket"
msgstr "支持票"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid "Support Tickets"
msgstr "支持工單"
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_project_task
msgid "Task"
msgstr "任務"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__task_ids
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_form
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_team_form
msgid "Tasks"
msgstr "任務"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.view_helpdesk_kanban
msgid "Team :"
msgstr "團隊"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid "Thank You!"
msgstr ""
#. module: odoo_website_helpdesk
#: code:addons/odoo_website_helpdesk/controller/website_form.py:0
#, python-format
msgid "The form's specified model does not exist"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_tickets
msgid "There are currently no tickets issued for your account."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_account_bank_statement_line__ticket_id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_account_move__ticket_id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_account_payment__ticket_id
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_project_task__ticket_id
msgid "Ticket"
msgstr "票"
#. module: odoo_website_helpdesk
#: model:ir.model,name:odoo_website_helpdesk.model_ticket_stage
msgid "Ticket Stage"
msgstr "售票階段"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_view_activity
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_home_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.portal_my_home_menu_tickets
msgid "Tickets"
msgstr "門票"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__activity_exception_decoration
msgid "Type of the exception activity on record."
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.ticket_form
msgid ""
"Very\n"
" Low"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__4
msgid "Very High"
msgstr "很高"
#. module: odoo_website_helpdesk
#: model:ir.model.fields.selection,name:odoo_website_helpdesk.selection__help_ticket__priority__0
msgid "Very Low"
msgstr "非常低"
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"We will get back\n"
" to you shortly."
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__website_message_ids
msgid "Website Messages"
msgstr ""
#. module: odoo_website_helpdesk
#: model:ir.model.fields,help:odoo_website_helpdesk.field_help_ticket__website_message_ids
msgid "Website communication history"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid "Your Ticket"
msgstr "你的票"
#. module: odoo_website_helpdesk
#: model:ir.model.fields,field_description:odoo_website_helpdesk.field_help_ticket__customer_id
msgid "customer"
msgstr ""
#. module: odoo_website_helpdesk
#: model_terms:ir.ui.view,arch_db:odoo_website_helpdesk.helpdesk_thanks_ir_ui_view
#: model_terms:website.page,arch_db:odoo_website_helpdesk.helpdesk_thanks
msgid ""
"has been registered\n"
" <b>successfully</b>"
msgstr ""

4
odoo_website_helpdesk/models/__init__.py

@ -19,7 +19,9 @@
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
from . import helpdesk
from . import task
from . import res_config
from . import categories
from . import heldesk_team
from . import mail_compose

30
odoo_website_helpdesk/models/categories.py

@ -0,0 +1,30 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2022-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>)
#
# You can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# (LGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
from odoo import fields, models
class HelpdeskCategories(models.Model):
_name = 'helpdesk.categories'
_description = 'Categories'
name = fields.Char('Name')
sequence = fields.Integer('Sequence', default=0)

52
odoo_website_helpdesk/models/heldesk_team.py

@ -0,0 +1,52 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2022-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>)
#
# You can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# (LGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
from odoo import api, fields, models
class HelpDeskTeam(models.Model):
_name = 'help.team'
_description = 'Helpdesk Team'
name = fields.Char('Name')
team_lead_id = fields.Many2one('res.users', string='Team Leader',
domain=lambda self: [
('groups_id', 'in', self.env.ref(
'odoo_website_helpdesk.helpdesk_team_leader').id)])
member_ids = fields.Many2many('res.users', string='Members',
domain=lambda self: [
('groups_id', 'in', self.env.ref(
'odoo_website_helpdesk.helpdesk_user').id)])
email = fields.Char('Email')
project_id = fields.Many2one('project.project', string='Project')
create_task = fields.Boolean(string="Create Task")
@api.onchange('team_lead_id')
def members_choose(self):
fetch_memebers = self.env['res.users'].search([])
filterd_members = fetch_memebers.filtered(
lambda x: x.id != self.team_lead_id.id)
return {'domain': {'member_ids':
[('id', '=', filterd_members.ids), (
'groups_id', 'in',
self.env.ref('base.group_user').id),
('groups_id', 'not in', self.env.ref(
'odoo_website_helpdesk.helpdesk_team_leader').id)]}}

203
odoo_website_helpdesk/models/helpdesk.py

@ -22,6 +22,7 @@
import logging
from odoo import models, fields, api, _
from odoo.exceptions import UserError
from odoo.exceptions import ValidationError
_logger = logging.getLogger(__name__)
@ -30,7 +31,16 @@ PRIORITIES = [
('1', 'Low'),
('2', 'Normal'),
('3', 'High'),
('4', 'Very High')]
('4', 'Very High'),
]
RATING = [
('0', 'Very Low'),
('1', 'Low'),
('2', 'Normal'),
('3', 'High'),
('4', 'Very High'),
('5', 'Extreme High')
]
class HelpDeskTicket(models.Model):
@ -40,14 +50,14 @@ class HelpDeskTicket(models.Model):
name = fields.Char('Name', default=lambda self: self.env['ir.sequence'].
next_by_code('help.ticket') or _('New'))
customer_id = fields.Many2one('res.partner', string='customer')
customer_id = fields.Many2one('res.partner', string='Customer Name')
customer_name = fields.Char('Customer Name')
subject = fields.Text('Subject', required=True)
description = fields.Text('Description', required=True)
email = fields.Char('Email')
phone = fields.Char('Phone')
team_id = fields.Many2one('help.team', string='Helpdesk Team')
product_id = fields.Many2one('product.product', string='Product')
product_id = fields.Many2many('product.template', string='Product')
project_id = fields.Many2one('project.project', string='Project',
readonly=False,
related='team_id.project_id', store=True)
@ -59,19 +69,72 @@ class HelpDeskTicket(models.Model):
[('name', '=', 'Draft')], limit=1).id,
tracking=True,
group_expand='_read_group_stage_ids')
user_id = fields.Many2one('res.users',
default=lambda self: self.env.user,
check_company=True,
index=True, tracking=True)
cost = fields.Float('Cost per hour')
service_product_id = fields.Many2one('product.product',
string='Service Product',
domain=[
('detailed_type', '=', 'service')])
start_date = fields.Date('Start Date')
end_date = fields.Date('End Date')
create_date = fields.Datetime('Creation Date')
start_date = fields.Datetime('Start Date')
end_date = fields.Datetime('End Date')
public_ticket = fields.Boolean(string="Public Ticket")
invoice_ids = fields.Many2many('account.move', string='Invoices',
store=True)
invoice_ids = fields.Many2many('account.move', string='Invoices')
task_ids = fields.Many2many('project.task', string='Tasks')
color = fields.Integer(string="Color", default=6)
color = fields.Integer(string="Color")
replied_date = fields.Datetime('Replied date')
last_update_date = fields.Datetime('Last Update Date')
ticket_type = fields.Many2one('helpdesk.types', string='Ticket Type')
team_head = fields.Many2one('res.users', string='Team Leader',
compute='_compute_team_head')
assigned_user = fields.Many2one('res.users',
domain=lambda self: [
('groups_id', 'in', self.env.ref(
'odoo_website_helpdesk.helpdesk_user').id)])
category_id = fields.Many2one('helpdesk.categories')
tags = fields.Many2many('helpdesk.tag')
assign_user = fields.Boolean(default=False)
attachment_ids = fields.One2many('ir.attachment', 'res_id')
@api.onchange('team_id', 'team_head')
def team_leader_domain(self):
li = []
for rec in self.team_id.member_ids:
li.append(rec.id)
return {'domain': {'assigned_user': [('id', 'in', li)]}}
@api.depends('team_id')
def _compute_team_head(self):
self.team_head = self.team_id.team_lead_id.id
@api.onchange('stage_id')
def mail_snd(self):
rec_id = self._origin.id
data = self.env['help.ticket'].search([('id', '=', rec_id)])
data.last_update_date = fields.Datetime.now()
if self.stage_id.starting_stage:
data.start_date = fields.Datetime.now()
if self.stage_id.closing_stage or self.stage_id.cancel_stage:
data.end_date = fields.Datetime.now()
if self.stage_id.template_id:
mail_template = self.stage_id.template_id
mail_template.send_mail(self._origin.id, force_send=True)
def assign_to_teamleader(self):
if self.team_id:
self.team_head = self.team_id.team_lead_id.id
mail_template = self.env.ref(
'odoo_website_helpdesk.odoo_website_helpdesk_assign')
mail_template.sudo().write({
'email_to': self.team_head.email,
'subject': self.name
})
mail_template.sudo().send_mail(self.id, force_send=True)
else:
raise ValidationError("Please choose a Helpdesk Team")
def _default_show_create_task(self):
return self.env['ir.config_parameter'].sudo().get_param(
@ -84,11 +147,45 @@ class HelpDeskTicket(models.Model):
related='team_id.create_task', store=True)
billable = fields.Boolean(string="Billable", default=False)
def _default_show_category(self):
return self.env['ir.config_parameter'].sudo().get_param(
'odoo_website_helpdesk.show_category')
show_category = fields.Boolean(default=_default_show_category,
compute='_compute_show_category')
customer_rating = fields.Selection(RATING, default='0', readonly=True)
review = fields.Char('Review', readonly=True)
kanban_state = fields.Selection([
('normal', 'Ready'),
('done', 'In Progress'),
('blocked', 'Blocked'), ], default='normal')
def _compute_show_category(self):
show_category = self._default_show_category()
for rec in self:
rec.show_category = show_category
def _compute_show_create_task(self):
show_create_task = self._default_show_create_task()
for record in self:
record.show_create_task = show_create_task
def auto_close_ticket(self):
auto_close = self.env['ir.config_parameter'].sudo().get_param(
'odoo_website_helpdesk.auto_close_ticket')
if auto_close:
no_of_days = self.env['ir.config_parameter'].sudo().get_param(
'odoo_website_helpdesk.no_of_days')
records = self.env['help.ticket'].search([])
for rec in records:
days = (fields.Datetime.today() - rec.create_date).days
if days >= int(no_of_days):
close_stage_id = self.env['ticket.stage'].search(
[('closing_stage', '=', True)])
if close_stage_id:
rec.stage_id = close_stage_id
def default_stage_id(self):
# Search your stage
return self.env['ticket.stage'].search(
@ -104,7 +201,6 @@ class HelpDeskTicket(models.Model):
@api.model_create_multi
def create(self, vals_list):
return super(HelpDeskTicket, self).create(vals_list)
def write(self, vals):
@ -116,7 +212,6 @@ class HelpDeskTicket(models.Model):
[('project_id', '=', self.project_id.id),
('ticket_id', '=', self.id)]).filtered(
lambda line: line.ticket_billed == False)
if not tasks:
raise UserError('No Tasks to Bill')
@ -137,20 +232,18 @@ class HelpDeskTicket(models.Model):
'name': self.service_product_id.name,
'quantity': total,
'product_uom_id': self.service_product_id.uom_id.id,
'price_unit': self.cost if self.cost else self.service_product_id.lst_price,
'price_unit': self.cost,
'account_id': self.service_product_id.categ_id.property_account_income_categ_id.id,
})],
}, ])
for task in tasks:
task.ticket_billed = True
return {
'view_type': 'form',
'res_model': 'account.move',
'res_id': move.id,
'view_id': False,
'view_mode': 'form',
'type': 'ir.actions.act_window'
'effect': {
'fadeout': 'medium',
'message': 'Billed Successfully!',
'type': 'rainbow_man',
}
}
def create_tasks(self):
@ -194,17 +287,77 @@ class HelpDeskTicket(models.Model):
'type': 'ir.actions.act_window',
}
def action_send_reply(self):
template_id = self.env['ir.config_parameter'].sudo().get_param(
'odoo_website_helpdesk.reply_template_id'
)
template_id = self.env['mail.template'].browse(int(template_id))
if template_id:
return {
'type': 'ir.actions.act_window',
'name': 'mail',
'res_model': 'mail.compose.message',
'view_mode': 'form',
'target': 'new',
'views': [[False, 'form']],
'context': {
'default_model': 'help.ticket',
'default_res_id': self.id,
'default_template_id': template_id.id
}
}
return {
'type': 'ir.actions.act_window',
'name': 'mail',
'res_model': 'mail.compose.message',
'view_mode': 'form',
'target': 'new',
'views': [[False, 'form']],
'context': {
'default_model': 'help.ticket',
'default_res_id': self.id,
}
}
class StageTicket(models.Model):
_name = 'ticket.stage'
_description = 'Ticket Stage'
_order = 'sequence, id'
_fold_name = 'fold'
name = fields.Char('Name')
active = fields.Boolean(default=True)
sequence = fields.Integer(default=50)
closing_stage = fields.Boolean('Closing Stage', default=False)
cancel_stage = fields.Boolean('Cancel Stage', default=False)
starting_stage = fields.Boolean('Start Stage', default=False)
folded = fields.Boolean('Folded in Kanban', default=False)
template_id = fields.Many2one('mail.template',
domain="[('model', '=', 'help.ticket')]")
group_ids = fields.Many2many('res.groups')
fold = fields.Boolean(string='Fold')
def unlink(self):
for rec in self:
tickets = rec.search([])
sequence = tickets.mapped('sequence')
lowest_sequence = tickets.filtered(
lambda x: x.sequence == min(sequence))
if self.name == "Draft":
raise UserError(_("Cannot Delete This Stage"))
if rec == lowest_sequence:
raise UserError(_("Cannot Delete '%s'" % (rec.name)))
else:
res = super().unlink()
return res
class HelpdeskTypes(models.Model):
_name = 'helpdesk.types'
_description = 'Helpdesk Types'
name = fields.Char(string='Type')
class Tasks(models.Model):
@ -213,12 +366,8 @@ class Tasks(models.Model):
ticket_billed = fields.Boolean('Billed', default=False)
class HelpDeskTeam(models.Model):
_name = 'help.team'
_description = 'Helpdesk Team'
class HelpdeskTags(models.Model):
_name = 'helpdesk.tag'
_description = 'Helpdesk Tags'
name = fields.Char('Name')
member_ids = fields.Many2many('res.users', string='Members')
email = fields.Char('Email')
project_id = fields.Many2one('project.project', string='Project')
create_task = fields.Boolean(string="Create Task")
name = fields.Char(string='Tag')

33
odoo_website_helpdesk/models/mail_compose.py

@ -0,0 +1,33 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2022-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>)
#
# You can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# (LGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
from odoo import fields, models
class MailComposeMessage(models.TransientModel):
_inherit = 'mail.compose.message'
def _action_send_mail(self, auto_commit=False):
if self.model == 'help.ticket':
ticket_id = self.env['help.ticket'].browse(self.res_id)
ticket_id.replied_date = fields.Date.today()
return super(MailComposeMessage, self)._action_send_mail(
auto_commit=auto_commit)

64
odoo_website_helpdesk/models/res_config.py

@ -19,12 +19,68 @@
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
from odoo import models, fields
from odoo import models, fields, api
class Menu(models.Model):
_inherit = "website.menu"
def _compute_visible(self):
super()._compute_visible()
show_menu_header = self.env['ir.config_parameter'].sudo().get_param(
'odoo_website_helpdesk.helpdesk_menu_show')
for menu in self:
if menu.name == 'Helpdesk' and show_menu_header == False:
menu.is_visible = False
if menu.name == 'Helpdesk' and show_menu_header == True:
menu.is_visible = True
class Helpdesk(models.TransientModel):
_inherit = 'res.config.settings'
show_create_task = fields.Boolean(
string="Create Tasks",
config_parameter='odoo_website_helpdesk.show_create_task')
show_create_task = fields.Boolean(string="Create Tasks",
config_parameter='odoo_website_helpdesk.show_create_task')
show_category = fields.Boolean(string="Category",
config_parameter='odoo_website_helpdesk.show_category',
implied_group='odoo_website_helpdesk.group_show_category')
product_website = fields.Boolean(string="Product On Website",
config_parameter='odoo_website_helpdesk.product_website')
auto_close_ticket = fields.Boolean(string="Auto Close Ticket",
config_parameter='odoo_website_helpdesk.auto_close_ticket')
no_of_days = fields.Integer(string="No Of Days",
config_parameter='odoo_website_helpdesk.no_of_days')
closed_stage = fields.Many2one(
'ticket.stage', string='Closing stage',
config_parameter='odoo_website_helpdesk.closed_stage')
reply_template_id = fields.Many2one('mail.template',
domain="[('model', '=', 'help.ticket')]",
config_parameter='odoo_website_helpdesk.reply_template_id')
helpdesk_menu_show = fields.Boolean('Helpdesk Menu',
config_parameter=
'odoo_website_helpdesk.helpdesk_menu_show')
@api.onchange('closed_stage')
def closed_stage_a(self):
stage = self.closed_stage.id
in_stage = self.env['ticket.stage'].search([('id', '=', stage)])
not_in_stage = self.env['ticket.stage'].search([('id', '!=', stage)])
in_stage.closing_stage = True
for each in not_in_stage:
each.closing_stage = False
@api.constrains('show_category')
def show_category_subcategory(self):
if self.show_category:
group_cat = self.env.ref(
'odoo_website_helpdesk.group_show_category')
group_cat.write({
'users': [(4, self.env.user.id)]
})
else:
group_cat = self.env.ref(
'odoo_website_helpdesk.group_show_category')
group_cat.write({
'users': [(5, False)]
})

113
odoo_website_helpdesk/report/helpdesk_ticket_report_template.xml

@ -0,0 +1,113 @@
<odoo>
<template id="report_helpdesk_ticket">
<t t-call="web.html_container">
<t t-foreach="help" t-as="o">
<t t-call="web.external_layout">
<div class="page">
<div style="margin-bottom: 10px;">
<div class="text-center"
style="font-weight: 400 !important; font-size: 2rem !important;">
<t t-esc="o.name"/>
- <t t-esc="o.subject"/>
</div><br/>
<table class="table table-bordered mt32">
<thead>
<tr>
<th class="text-center">
<span>Customer :</span>
</th>
<th class="text-center">
<span>Description :</span>
</th>
<th class="text-center">
<span>Priority :</span>
</th>
<th class="text-center">
<span>Products :</span>
</th>
</tr>
</thead>
<tbody>
<tr class="text-center">
<td>
<span t-field="o.customer_id"
t-options='{"widget": "contact", "fields": ["address", "name"], "no_marker": True}'/>
</td>
<td>
<h3 t-field="o.description"/>
</td>
<td>
<h3 t-field="o.priority"/>
</td>
<td>
<h3 t-field="o.product_id"/>
</td>
</tr>
</tbody>
</table>
</div>
<t t-set="tasks"
t-value="request.env['project.task'].sudo().search([('ticket_id', '=', o.id)])"/>
<t t-if="tasks">
<div>
<h3 class="text-center">
<strong>Tasks</strong>
</h3>
</div>
<table class="table table-bordered mt32">
<thead>
<tr>
<th class="text-center">
<span>Task Name</span>
</th>
<th class="text-center">
<span>Analytic Account</span>
</th>
<th class="text-center">
<span>Assigned to</span>
</th>
<th class="text-center">
<span>Total Hours Spend</span>
</th>
</tr>
</thead>
<t t-foreach="tasks" t-as="task">
<tbody>
<tr class="text-center">
<td>
<span t-field="task.name"/>
</td>
<td>
<span t-field="task.analytic_account_id"/>
</td>
<td>
<span t-esc="', '.join(map(lambda x: (x.name), task.user_ids))"/>
</td>
<td>
<span t-field="task.effective_hours"/>
</td>
</tr>
</tbody>
</t>
</table>
</t>
</div>
</t>
</t>
</t>
</template>
<record id="action_report_helpdesk_ticket" model="ir.actions.report">
<field name="name">Helpdesk Ticket Report</field>
<field name="model">help.ticket</field>
<field name="report_type">qweb-pdf</field>
<field name="report_name">odoo_website_helpdesk.report_helpdesk_ticket</field>
<field name="report_file">odoo_website_helpdesk.report_helpdesk_ticket</field>
<field name="binding_type">report</field>
</record>
</odoo>

21
odoo_website_helpdesk/security/ir.model.access.csv

@ -1,4 +1,21 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_help_ticket,access.help.ticket,model_help_ticket,,1,1,1,1
access_help_ticket_teams,access.help.team,model_help_team,,1,1,1,1
access_help_ticket_stage,access.ticket.stage,model_ticket_stage,,1,1,1,1
access_help_ticket_teams_user,access.help.team,model_help_team,odoo_website_helpdesk.helpdesk_user,1,0,0,0
access_help_ticket_teams_leader,access.help.team,model_help_team,odoo_website_helpdesk.helpdesk_team_leader,1,0,0,0
access_help_ticket_teams_manager,access.help.team,model_help_team,odoo_website_helpdesk.helpdesk_manager,1,1,1,1
access_helpdesk_tag_user,access.helpdesk.tag,model_helpdesk_tag,odoo_website_helpdesk.helpdesk_user,1,0,0,0
access_helpdesk_tag_leader,access.helpdesk.tag,model_helpdesk_tag,odoo_website_helpdesk.helpdesk_team_leader,1,1,1,1
access_helpdesk_tag_manager,access.helpdesk.tag,model_helpdesk_tag,odoo_website_helpdesk.helpdesk_manager,1,1,1,1
access_help_ticket_stage_user,access.ticket.stage,model_ticket_stage,,1,1,1,1
access_helpdesk_types_user,access.helpdesk.types,model_helpdesk_types,odoo_website_helpdesk.helpdesk_user,1,0,0,0
access_helpdesk_types_leader,access.helpdesk.types,model_helpdesk_types,odoo_website_helpdesk.helpdesk_team_leader,1,1,1,1
access_helpdesk_types_manager,access.helpdesk.types,model_helpdesk_types,odoo_website_helpdesk.helpdesk_manager,1,1,1,1
access_helpdesk_categories_user,access_helpdesk_categories,model_helpdesk_categories,odoo_website_helpdesk.helpdesk_user,1,0,0,0
access_helpdesk_categories_leader,access_helpdesk_categories,model_helpdesk_categories,odoo_website_helpdesk.helpdesk_team_leader,1,1,1,1
access_helpdesk_categories_manager,access_helpdesk_categories,model_helpdesk_categories,odoo_website_helpdesk.helpdesk_manager,1,1,1,1

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_help_ticket access.help.ticket model_help_ticket 1 1 1 1
3 access_help_ticket access_help_ticket_teams_user access.help.ticket access.help.team model_help_ticket model_help_team odoo_website_helpdesk.helpdesk_user 1 1 0 1 0 1 0
4 access_help_ticket_teams access_help_ticket_teams_leader access.help.team model_help_team odoo_website_helpdesk.helpdesk_team_leader 1 1 0 1 0 1 0
5 access_help_ticket_stage access_help_ticket_teams_manager access.ticket.stage access.help.team model_ticket_stage model_help_team odoo_website_helpdesk.helpdesk_manager 1 1 1 1
6 access_helpdesk_tag_user access.helpdesk.tag model_helpdesk_tag odoo_website_helpdesk.helpdesk_user 1 0 0 0
7 access_helpdesk_tag_leader access.helpdesk.tag model_helpdesk_tag odoo_website_helpdesk.helpdesk_team_leader 1 1 1 1
8 access_helpdesk_tag_manager access.helpdesk.tag model_helpdesk_tag odoo_website_helpdesk.helpdesk_manager 1 1 1 1
9 access_help_ticket_stage_user access.ticket.stage model_ticket_stage 1 1 1 1
10 access_helpdesk_types_user access.helpdesk.types model_helpdesk_types odoo_website_helpdesk.helpdesk_user 1 0 0 0
11 access_helpdesk_types_leader access.helpdesk.types model_helpdesk_types odoo_website_helpdesk.helpdesk_team_leader 1 1 1 1
12 access_helpdesk_types_manager access.helpdesk.types model_helpdesk_types odoo_website_helpdesk.helpdesk_manager 1 1 1 1
13 access_helpdesk_categories_user access_helpdesk_categories model_helpdesk_categories odoo_website_helpdesk.helpdesk_user 1 0 0 0
14 access_helpdesk_categories_leader access_helpdesk_categories model_helpdesk_categories odoo_website_helpdesk.helpdesk_team_leader 1 1 1 1
15 access_helpdesk_categories_manager access_helpdesk_categories model_helpdesk_categories odoo_website_helpdesk.helpdesk_manager 1 1 1 1
16
17
18
19
20
21

114
odoo_website_helpdesk/security/security_groups.xml

@ -0,0 +1,114 @@
<odoo>
<record model="ir.module.category" id="module_category_helpdesk">
<field name="name">Helpdesk</field>
<field name="description">Helpdesk Access Groups</field>
<field name="sequence">20</field>
</record>
<record id="helpdesk_user" model="res.groups">
<field name="name">User</field>
<field name="category_id" ref="odoo_website_helpdesk.module_category_helpdesk"/>
</record>
<record id="helpdesk_team_leader" model="res.groups">
<field name="name">Team Leader</field>
<field name="category_id" ref="odoo_website_helpdesk.module_category_helpdesk"/>
<field name="implied_ids" eval="[(4, ref('odoo_website_helpdesk.helpdesk_user'))]"/>
</record>
<record id="helpdesk_manager" model="res.groups">
<field name="name">Manager</field>
<field name="category_id" ref="odoo_website_helpdesk.module_category_helpdesk"/>
<field name="implied_ids" eval="[(4, ref('odoo_website_helpdesk.helpdesk_team_leader'))]"/>
</record>
<record id="group_show_category" model="res.groups">
<field name="name">group_show_category</field>
</record>
<record id="group_show_subcategory" model="res.groups">
<field name="name">group_show_subcategory</field>
</record>
<record id="help_desk_dashboard_team_leader"
model="ir.rule">
<field name="name">Record Rule for team leader</field>
<field ref="model_help_ticket" name="model_id"/>
<field name="groups"
eval="[(4, ref('odoo_website_helpdesk.helpdesk_team_leader'))]"/>
<field name="domain_force">['&amp;', ('team_head.id', '=', user.id), ('stage_id.group_ids.users', 'in', user.id)]</field>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_create" eval="True"/>
<field name="perm_unlink" eval="True"/>
</record>
<record id="help_desk_dashboard_manager"
model="ir.rule">
<field name="name">Record Rule for manager</field>
<field ref="model_help_ticket" name="model_id"/>
<field name="groups"
eval="[(4, ref('odoo_website_helpdesk.helpdesk_manager'))]"/>
<field name="domain_force">[(1, '=', 1)]</field>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_create" eval="True"/>
<field name="perm_unlink" eval="True"/>
</record>
<record id="help_desk_dashboard_user"
model="ir.rule">
<field name="name">Record Rule for user</field>
<field ref="model_help_ticket" name="model_id"/>
<field name="groups"
eval="[(4, ref('odoo_website_helpdesk.helpdesk_user'))]"/>
<field name="domain_force">['&amp;', ('assigned_user', '=', user.id), ('stage_id.group_ids.users', 'in', user.id)]</field>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_create" eval="True"/>
<field name="perm_unlink" eval="True"/>
</record>
<record id="help_desk_stage_rule_leader"
model="ir.rule">
<field name="name">Record Rule stages leader</field>
<field ref="model_ticket_stage" name="model_id"/>
<field name="groups"
eval="[(4, ref('odoo_website_helpdesk.helpdesk_team_leader'))]"/>
<field name="domain_force">[('group_ids.users', 'in', user.id)]</field>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_create" eval="True"/>
<field name="perm_unlink" eval="True"/>
</record>
<record id="help_desk_stage_rule_manager"
model="ir.rule">
<field name="name">Record Rule stages manager</field>
<field ref="model_ticket_stage" name="model_id"/>
<field name="groups"
eval="[(4, ref('odoo_website_helpdesk.helpdesk_manager'))]"/>
<field name="domain_force">[(1, '=', 1)]</field>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_create" eval="True"/>
<field name="perm_unlink" eval="True"/>
</record>
<record id="help_desk_stage_rule_user"
model="ir.rule">
<field name="name">Record Rule stages user</field>
<field ref="model_ticket_stage" name="model_id"/>
<field name="groups"
eval="[(4, ref('odoo_website_helpdesk.helpdesk_user'))]"/>
<field name="domain_force">[('group_ids.users', 'in', user.id)]</field>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_create" eval="True"/>
<field name="perm_unlink" eval="True"/>
</record>
<record id="base.default_user" model="res.users">
<field name="groups_id" eval="[(4,ref('odoo_website_helpdesk.helpdesk_manager'))]"/>
</record>
</odoo>

BIN
odoo_website_helpdesk/static/description/assets/screenshots/Screenshot3.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 220 KiB

After

Width:  |  Height:  |  Size: 168 KiB

10
odoo_website_helpdesk/static/src/cdn/.browserslistrc

@ -0,0 +1,10 @@
> 0.25%
not dead
Chrome >= 45
Firefox >= 38
Edge >= 12
Explorer >= 10
iOS >= 9
Safari >= 9
Android >= 4.4
Opera >= 30

5
odoo_website_helpdesk/static/src/cdn/.deepsource.toml

@ -0,0 +1,5 @@
version = 1
[[analyzers]]
name = "javascript"
enabled = true

12
odoo_website_helpdesk/static/src/cdn/.editorconfig

@ -0,0 +1,12 @@
# EditorConfig is awesome: https://EditorConfig.org
# top-most EditorConfig file
root = true
[*]
indent_style = space
indent_size = 2
end_of_line = crlf
charset = utf-8
trim_trailing_whitespace = false
insert_final_newline = false

25
odoo_website_helpdesk/static/src/cdn/.eslintrc

@ -0,0 +1,25 @@
{
"env": {
"es6": true,
"browser": true
},
"ignorePatterns": ["**/*.min.js", "gpr-hack.js"],
"extends": "eslint:recommended",
"rules": {
"no-extra-boolean-cast": "error",
"semi": "error",
"no-var": "error",
"object-shorthand": "error",
"prefer-template": "error",
"radix": "error",
"eqeqeq": "error",
"default-case": "error",
"prefer-arrow-callback": "error",
"no-param-reassign": "error",
"prefer-destructuring": "error",
"dot-location": ["error", "property"],
"no-shadow": "error",
"no-implicit-coercion": "off",
"no-throw-literal": "error"
}
}

1
odoo_website_helpdesk/static/src/cdn/.github/CODEOWNERS

@ -0,0 +1 @@
* @Zenoo

72
odoo_website_helpdesk/static/src/cdn/.github/workflows/codeql-analysis.yml

@ -0,0 +1,72 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
push:
branches: [ master ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ master ]
schedule:
- cron: '15 14 * * 5'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'javascript' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
# Learn more:
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
steps:
- name: Checkout repository
uses: actions/checkout@v2
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
paths-ignore: "docs"
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1

43
odoo_website_helpdesk/static/src/cdn/.github/workflows/github-release-publish.yml

@ -0,0 +1,43 @@
name: GitHub Release
on:
push:
tags:
- 'v*.*.*'
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Release
uses: softprops/action-gh-release@v1
with:
body: |
See [CHANGELOG.md](./CHANGELOG.md) for changes.
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 14
registry-url: 'https://registry.npmjs.org'
- run: npm ci
- run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 14
registry-url: https://npm.pkg.github.com/
scope: "@hemantnegi"
- run: node gpr-hack.js
- run: npm ci
- run: npm publish
env:
NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}

2
odoo_website_helpdesk/static/src/cdn/.gitignore

@ -0,0 +1,2 @@
.idea/
node_modules

3
odoo_website_helpdesk/static/src/cdn/.vscode/settings.json

@ -0,0 +1,3 @@
{
"es6-css-minify.minifyOnSave": "no"
}

362
odoo_website_helpdesk/static/src/cdn/CHANGELOG.md

@ -0,0 +1,362 @@
# Changelog
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
### [3.4.8](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.4.7...v3.4.8) (2022-07-29)
### [3.4.7](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.4.6...v3.4.7) (2022-07-29)
### Bug Fixes
* Placeholder text not in sync with `triggerChangeCombined` set to `false`. Fixes [#331](https://github.com/HemantNegi/jquery.sumoselect/issues/331) ([b24ff0f](https://github.com/HemantNegi/jquery.sumoselect/commit/b24ff0fced30b98c75513a13808ce7444360b076))
### [3.4.6](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.4.5...v3.4.6) (2022-04-15)
### Bug Fixes
* Select all not working on mobile. [#323](https://github.com/HemantNegi/jquery.sumoselect/issues/323) ([aacfa2e](https://github.com/HemantNegi/jquery.sumoselect/commit/aacfa2e805b22d5530cc0610b1ce319910fa38cb))
### [3.4.5](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.4.4...v3.4.5) (2022-02-10)
### Bug Fixes
* Update npm dependencies ([d567466](https://github.com/HemantNegi/jquery.sumoselect/commit/d567466c127a320ded7ffbcbcacbd89f89c16fa7))
### [3.4.4](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.4.3...v3.4.4) (2022-02-10)
### [3.4.3](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.4.2...v3.4.3) (2022-02-09)
### Bug Fixes
* Rename isCloseAfterClearAll to closeAfterClearAll ([046fe2d](https://github.com/HemantNegi/jquery.sumoselect/commit/046fe2d68acd0df8d295ed77fc2ea26842d15623))
### [3.4.2](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.4.1...v3.4.2) (2022-01-04)
### Bug Fixes
* Console cleanup ([a43da6a](https://github.com/HemantNegi/jquery.sumoselect/commit/a43da6a7b80abe469cb82e550adbbff7f2474e3f))
### [3.4.1](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.4.0...v3.4.1) (2022-01-04)
### Bug Fixes
* Select disappearing on reload on mobile. Fixes [#318](https://github.com/HemantNegi/jquery.sumoselect/issues/318) ([dd8ce18](https://github.com/HemantNegi/jquery.sumoselect/commit/dd8ce1830fe1f71af4e754fc2f4c3b8dea6a27bd))
## [3.4.0](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.3.30...v3.4.0) (2022-01-04)
### Features
* New selectAllPartialCheck option ([db9dc39](https://github.com/HemantNegi/jquery.sumoselect/commit/db9dc39bdc449eee10b5b4d614d0a78887ed401f))
### [3.3.30](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.3.29...v3.3.30) (2021-10-30)
### Bug Fixes
* Force event bubbling up.Fixes [#316](https://github.com/HemantNegi/jquery.sumoselect/issues/316) ([620ba23](https://github.com/HemantNegi/jquery.sumoselect/commit/620ba2334e3e5a836434b2378fe7dcf16fc68948))
### [3.3.29](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.3.28...v3.3.29) (2021-09-02)
### Bug Fixes
* Search text not showing up. Fixes [#312](https://github.com/HemantNegi/jquery.sumoselect/issues/312) ([a7ed02c](https://github.com/HemantNegi/jquery.sumoselect/commit/a7ed02c9caeceb2c882715b8ab884bbf073fd2d1))
### [3.3.28](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.3.27...v3.3.28) (2021-08-10)
### Bug Fixes
* Placeholder not changing on click on select all. Fixes [#311](https://github.com/HemantNegi/jquery.sumoselect/issues/311) ([569faf7](https://github.com/HemantNegi/jquery.sumoselect/commit/569faf7dfd48d3247142b9f1b175086d21230497))
### [3.3.27](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.3.26...v3.3.27) (2021-08-04)
### [3.3.26](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.3.25...v3.3.26) (2021-07-12)
### Bug Fixes
* Warning on IE. [#307](https://github.com/HemantNegi/jquery.sumoselect/issues/307) ([0e96ea6](https://github.com/HemantNegi/jquery.sumoselect/commit/0e96ea67ead1d0cb78713f0c9fa90f2d5d81e885))
### [3.3.25](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.3.24...v3.3.25) (2021-07-12)
### Bug Fixes
* Error on IE. Fixes [#307](https://github.com/HemantNegi/jquery.sumoselect/issues/307) ([bb785d1](https://github.com/HemantNegi/jquery.sumoselect/commit/bb785d179e531c89f254ead2845d8ba6dd6052c4))
### [3.3.24](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.3.23...v3.3.24) (2021-07-05)
### Bug Fixes
* Reselect preselected options for IE too. Fixes [#306](https://github.com/HemantNegi/jquery.sumoselect/issues/306) ([88c444c](https://github.com/HemantNegi/jquery.sumoselect/commit/88c444c00da6229cfb58f24f74ead0ffceb8d4de))
### [3.3.23](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.3.22...v3.3.23) (2021-07-05)
### Bug Fixes
* Bug where you can't initialize sumo with multiple options selected. Fixes [#306](https://github.com/HemantNegi/jquery.sumoselect/issues/306) ([1691d71](https://github.com/HemantNegi/jquery.sumoselect/commit/1691d713b5b692f6a89e10124cd782d68513a9ee))
### [3.3.22](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.3.21...v3.3.22) (2021-06-30)
### [3.3.21](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.3.20...v3.3.21) (2021-06-27)
### Bug Fixes
* No uppercases in scope ([425bc1e](https://github.com/HemantNegi/jquery.sumoselect/commit/425bc1e5d5a780aae770397144f635aed1ae4ce1))
### [3.3.20](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.3.19...v3.3.20) (2021-06-27)
### Bug Fixes
* package.json access point in GPR hack ([bbea8fb](https://github.com/HemantNegi/jquery.sumoselect/commit/bbea8fb4811a197a82539099a46420cdbc595bd1))
### [3.3.19](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.3.18...v3.3.19) (2021-06-27)
### Bug Fixes
* Wrong package.json link ([50a6229](https://github.com/HemantNegi/jquery.sumoselect/commit/50a62294832a63ac86eb4c6408b795d8ca104b76))
### [3.3.18](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.3.17...v3.3.18) (2021-06-27)
### Bug Fixes
* GPR hack mjs to js ([e577ecd](https://github.com/HemantNegi/jquery.sumoselect/commit/e577ecdcd3221b541086941d5ef7016d64d1487d))
### [3.3.17](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.3.16...v3.3.17) (2021-06-27)
### Bug Fixes
* Remove permission specifications ([b54e7d5](https://github.com/HemantNegi/jquery.sumoselect/commit/b54e7d5c6ae6837969be6a61f15dd2fc8714b64a))
### [3.3.16](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.3.15...v3.3.16) (2021-06-27)
### Bug Fixes
* Update node for npm publish run ([87f3b64](https://github.com/HemantNegi/jquery.sumoselect/commit/87f3b64e1cdb0adbd47c071a3bcde3abb27471be))
### [3.3.15](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.3.14...v3.3.15) (2021-06-27)
### Bug Fixes
* Package name & scope ([87f8c9d](https://github.com/HemantNegi/jquery.sumoselect/commit/87f8c9d87bfd0a0cf1f7344bf0519965c577e615))
### [3.3.14](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.3.13...v3.3.14) (2021-06-27)
### Bug Fixes
* GIthub package name ([846652c](https://github.com/HemantNegi/jquery.sumoselect/commit/846652c0af5244087b8ee29528ce78028e98b6d2))
### [3.3.13](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.3.12...v3.3.13) (2021-06-27)
### Bug Fixes
* publish script fix ([08a6d95](https://github.com/HemantNegi/jquery.sumoselect/commit/08a6d956a80138ba99bd298aa8427bfd2b508d9b))
### [3.3.12](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.3.11...v3.3.12) (2021-06-27)
### [3.3.11](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.3.10...v3.3.11) (2021-06-27)
### Bug Fixes
* Destructuring errors ([0008972](https://github.com/HemantNegi/jquery.sumoselect/commit/00089724651d4c536833845f920d819ad30182f2))
* Enforce default in switches ([5fdf684](https://github.com/HemantNegi/jquery.sumoselect/commit/5fdf6841dd30bf8eb644e66cdad2bc2de5c4be3e))
* no extra boolean cast ([afbbe29](https://github.com/HemantNegi/jquery.sumoselect/commit/afbbe29712d3ceeed1f951bb20d428f06f5d9e2e))
* No param reassign ([26d5d60](https://github.com/HemantNegi/jquery.sumoselect/commit/26d5d608ba58157e845f1d4728a09b196958b380))
* No shadow declarations ([5e25c58](https://github.com/HemantNegi/jquery.sumoselect/commit/5e25c58ec90b353563db8164797e0c7b9a08b323))
* Throw errors instead of literals ([006ebf8](https://github.com/HemantNegi/jquery.sumoselect/commit/006ebf87e09ff454074beb812491386f83b1bdce))
* Use `let` or `const` over `var` ([80fbe29](https://github.com/HemantNegi/jquery.sumoselect/commit/80fbe2941ac9ecbf6a5e5e0ff7bc26d12628dccd))
* Use arrow functions where possible ([c9eee06](https://github.com/HemantNegi/jquery.sumoselect/commit/c9eee066a92dbea4c14a2740ade44192b3c76077))
* Use destructuring ([c9758b1](https://github.com/HemantNegi/jquery.sumoselect/commit/c9758b189fde438b7c29d4a0fbbed7586f001695))
* Use object shorthands ([b0fd988](https://github.com/HemantNegi/jquery.sumoselect/commit/b0fd98858fb9bbd740a99b2b172751cf2d0abeca))
* Use parseInt shorthand ([00811a1](https://github.com/HemantNegi/jquery.sumoselect/commit/00811a1410538e4877dcb61720899225db2dbb31))
* Use strict equality operators ([69ffb8a](https://github.com/HemantNegi/jquery.sumoselect/commit/69ffb8af00827190d37cb838468d1d5f094a3284))
* Use template literals ([a26fd19](https://github.com/HemantNegi/jquery.sumoselect/commit/a26fd197f8413f0608e62c1147ee64c51aa5ceab))
### [3.3.10](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.3.9...v3.3.10) (2021-06-20)
### [3.3.9](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.3.8...v3.3.9) (2021-06-20)
### Bug Fixes
* Remove unwanted class after unload ([2b98214](https://github.com/HemantNegi/jquery.sumoselect/commit/2b982143f571477128ca921d8db303cf8accefee))
### [3.3.8](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.3.7...v3.3.8) (2021-06-20)
### Bug Fixes
* Hide opt groups with no matches on search. Fixes [#242](https://github.com/HemantNegi/jquery.sumoselect/issues/242) ([276d4ce](https://github.com/HemantNegi/jquery.sumoselect/commit/276d4ce5439686148781becc1e6606fea01e2ff6))
### [3.3.7](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.3.6...v3.3.7) (2021-06-20)
### Bug Fixes
* unSelectAll on single select. Fixes [#238](https://github.com/HemantNegi/jquery.sumoselect/issues/238) ([c60c8c4](https://github.com/HemantNegi/jquery.sumoselect/commit/c60c8c43d04645b14a75c8d484238ba3a184ad69))
### [3.3.6](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.3.5...v3.3.6) (2021-06-20)
### Bug Fixes
* Wrong li selection. Fixes [#227](https://github.com/HemantNegi/jquery.sumoselect/issues/227) ([10dab24](https://github.com/HemantNegi/jquery.sumoselect/commit/10dab243aa7f91ac457598b5127373c2256fcb69))
### [3.3.5](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.3.4...v3.3.5) (2021-06-20)
### Bug Fixes
* Stop form autocompletion on searches. Fixes [#223](https://github.com/HemantNegi/jquery.sumoselect/issues/223) ([7d298be](https://github.com/HemantNegi/jquery.sumoselect/commit/7d298beaf055ed8f74ba8bb7e20305323f054e99))
### [3.3.4](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.3.3...v3.3.4) (2021-06-20)
### Bug Fixes
* IE resetting selectedIndex from -1 to 0. Fixes [#221](https://github.com/HemantNegi/jquery.sumoselect/issues/221) ([8629388](https://github.com/HemantNegi/jquery.sumoselect/commit/8629388db1e0f86d827e7aba7d6ccfc42ef093c5))
### [3.3.3](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.3.2...v3.3.3) (2021-06-20)
### Bug Fixes
* Multiple :not selector not supported in IE / Safari. Fixes [#216](https://github.com/HemantNegi/jquery.sumoselect/issues/216) ([b553b91](https://github.com/HemantNegi/jquery.sumoselect/commit/b553b912116d59dd325fea8a3373b8da593680f0))
### [3.3.2](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.3.1...v3.3.2) (2021-06-20)
### Bug Fixes
* Optimize selectAll/ unSelectAll performance. Fixes [#209](https://github.com/HemantNegi/jquery.sumoselect/issues/209) ([91aba7b](https://github.com/HemantNegi/jquery.sumoselect/commit/91aba7b1139fb4df1b0cb9a7fcc7d1197a3a6967))
### [3.3.1](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.3.0...v3.3.1) (2021-06-20)
### Bug Fixes
* csvDispCount displaying one less than planned. Fixes [#267](https://github.com/HemantNegi/jquery.sumoselect/issues/267) ([dd00654](https://github.com/HemantNegi/jquery.sumoselect/commit/dd0065450620e4ee147306de1e9a14ac40e1b999))
* Trailing comma in placeholder ([fdfe2cd](https://github.com/HemantNegi/jquery.sumoselect/commit/fdfe2cde1cf7123688043b2e293d1a08c50e52de))
## [3.3.0](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.2.6...v3.3.0) (2021-06-20)
### Features
* New custom `<li>` renderer. Fixes [#272](https://github.com/HemantNegi/jquery.sumoselect/issues/272) ([d0ffdfb](https://github.com/HemantNegi/jquery.sumoselect/commit/d0ffdfb79a1b9dc59bb12a0c07676c255a8bf53d))
### [3.2.6](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.2.5...v3.2.6) (2021-06-19)
### [3.2.5](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.2.4...v3.2.5) (2021-06-19)
### [3.2.4](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.2.3...v3.2.4) (2021-06-19)
### [3.2.3](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.2.2...v3.2.3) (2021-06-19)
### Bug Fixes
* XSS vulnerabilities ([cd19c62](https://github.com/HemantNegi/jquery.sumoselect/commit/cd19c625d98858e2d9f6edef3c343d402ddf32bd))
### [3.2.2](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.2.1...v3.2.2) (2021-06-19)
### Bug Fixes
* Max settings disabling every option ([8dcf535](https://github.com/HemantNegi/jquery.sumoselect/commit/8dcf5352c66c0f6b310e070693e5a2d8923b6b85))
### [3.2.1](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.2.0...v3.2.1) (2021-06-19)
## [3.2.0](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.1.6...v3.2.0) (2021-06-19)
### Features
* New `max` options for maximum number of selected options. Fixes [#268](https://github.com/HemantNegi/jquery.sumoselect/issues/268) ([a973aaf](https://github.com/HemantNegi/jquery.sumoselect/commit/a973aaf0b68de650ef3a84f0c47f4bdfdb07090b))
### [3.1.6](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.1.5...v3.1.6) (2021-06-17)
### Bug Fixes
* CSS update on release + Remove useless files ([71524af](https://github.com/HemantNegi/jquery.sumoselect/commit/71524af391bbad55de5239129982f137926b2854))
* Stop copying missing file ([586ea5b](https://github.com/HemantNegi/jquery.sumoselect/commit/586ea5b07d2686a5c5510d3844a179fb6a019478))
### [3.1.5](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.1.4...v3.1.5) (2021-06-17)
### Bug Fixes
* Stop force focusing the select after close. Fixes [#277](https://github.com/HemantNegi/jquery.sumoselect/issues/277) ([ce71b8b](https://github.com/HemantNegi/jquery.sumoselect/commit/ce71b8bf1d3816674347fd9ad607de1773f4dd55))
### [3.1.4](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.1.3...v3.1.4) (2021-06-17)
### Bug Fixes
* Ignore minified files with eslint ([5e4691d](https://github.com/HemantNegi/jquery.sumoselect/commit/5e4691d471e49da06de51af67147f5910998f296))
### [3.1.3](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.1.2...v3.1.3) (2021-06-17)
### Bug Fixes
* Remove uglify & browserify ([0c207eb](https://github.com/HemantNegi/jquery.sumoselect/commit/0c207ebd0eca1381b2aaf2f3de4e1822ab3d87bf))
* Use babel preset env ([be9d3db](https://github.com/HemantNegi/jquery.sumoselect/commit/be9d3dbbd87c659a62c0b861ffd0556a12965a75))
### [3.1.2](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.1.1...v3.1.2) (2021-06-17)
### [3.1.1](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.1.0...v3.1.1) (2021-06-17)
### Bug Fixes
* Git not committing files ([3f6f90d](https://github.com/HemantNegi/jquery.sumoselect/commit/3f6f90d43718ddc33f8089a6a3a3ede669e4990a))
* IE compatible minification ([f22242f](https://github.com/HemantNegi/jquery.sumoselect/commit/f22242f0df0beaa2d503e29d33a7cc069f6acf5c))
## [3.1.0](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.0.6...v3.1.0) (2021-06-17)
### Features
* Pass origin class to generated element. Fixes [#294](https://github.com/HemantNegi/jquery.sumoselect/issues/294) ([6cd3963](https://github.com/HemantNegi/jquery.sumoselect/commit/6cd3963639ca3108c0cb3efcd3d67515d08d2607))
### [3.0.6](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.0.5...v3.0.6) (2021-06-17)
### Bug Fixes
* Selected options on safari ([c759fd3](https://github.com/HemantNegi/jquery.sumoselect/commit/c759fd384cf4084d5309edb29427540f01290c6f))
### [3.0.5](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.0.4...v3.0.5) (2021-06-17)
### [3.0.4](https://github.com/HemantNegi/jquery.sumoselect/compare/v3.0.2...v3.0.4) (2021-06-17)
### Bug Fixes
* Add 'var' for vars sels and i ([e94bfb3](https://github.com/HemantNegi/jquery.sumoselect/commit/e94bfb3f84ceab339119e2edb2d26ddb67384e8c))
* Don't fail script if nothing to commit ([9192fc5](https://github.com/HemantNegi/jquery.sumoselect/commit/9192fc5badcd5cbabc52e0a964b6c817fcdd6935))
* Typo ([78f9f7a](https://github.com/HemantNegi/jquery.sumoselect/commit/78f9f7aae57078c5cb967c9a452a7e87ee9d1549))
* Update minified files ([a623e94](https://github.com/HemantNegi/jquery.sumoselect/commit/a623e946ded96b133a1173af108d251d7db2ea72))
* var i ([e564c6d](https://github.com/HemantNegi/jquery.sumoselect/commit/e564c6d28087b81fe35adb1aba198a7d83b2e2d8))

220
odoo_website_helpdesk/static/src/cdn/README.md

@ -0,0 +1,220 @@
jquery.sumoselect
=============
jquery.sumoselect.js - A beautiful cross device Single/Multi Select jQuery Select plugin.
-------------------------------------------------------------------------------
A jQuery plugin that progressively enhances an HTML Select Box into a Single/Multiple option dropdown list. The dropdown list can be fully customizable using simple css.
It can adapt itself according to any device, keeping in mind that the User Experience is not broken.
# View Live [Demo Here](https://hemantnegi.github.io/jquery.sumoselect/sumoselect_demo.html)
Documentaion [Documentation Here](https://hemantnegi.github.io/jquery.sumoselect/)
Latest stable : [Download from here](https://github.com/HemantNegi/jquery.sumoselect/releases)
**CDNJS**
The folks at CDNJS host a copy of the library. The CDN is updated after the release is made public, which means there is a delay between the publishing of a release and its availability on the CDN, so keep that in mind. Just use these links:
```html
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery.sumoselect/3.1.6/sumoselect.min.css">
<!-- Latest compiled and minified JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.sumoselect/3.1.6/jquery.sumoselect.min.js"></script>
```
**Notable Features**
- Inline Search.
- Optgroup support.
- Single and Multi select option.
- Fully customizable by simple css.
- Supports almost all devices.
- Intelligently Renders itself according to the devices.
- Renders native Single/Multiple pop up on Android, ios, Windows and other devices.
- Custom postback data format (Multiple select data can be passed either as csv or default select)
- Selected, Disabled, and Placeholder Support
- Easily extendable to allow developers to create new widgets
## Requirements
jQuery 1.8.3+ (It is always recommended to use the latest version of jQuery)
## Desktop Browser Support
IE8+, Firefox 4+, Chrome, Safari 4+, Opera 11+ (Other browsers may work, but I did not test on them)
## Mobile/Tablet Browser Support
iOs 3+, Android 2.1+ , Windows Mobile (Other browsers may work, but I did not test on them)
## Forking
If you find that you need a feature that SumoSelect does not currently support, either let me know via the SumoSelect issue tracker, or fork SumoSelect on Github and easily extend SumoSelect to create your own widget!
## Usage
*To just go with the default options simply do*
```javascript
$(document).ready(function () {
$('.selectBox').SumoSelect();
});
```
*To provide optional settings, simply pass a settings object to SumoSelect()*
```javascript
$(document).ready(function () {
$('.selectBox').SumoSelect({
placeholder: 'This is a placeholder',
csvDispCount: 3
});
});
```
*You can also use data attributes to set options*
```html
<select class="selectBox" multiple data-max="2">
```
If you want an instance to the SumoSelect object to call handler methods
```javascript
const select;
$(document).ready(function () {
select = $('.selectBox').SumoSelect();
});
```
*NOTE: SumoSelect returns an array of select elements if there are more than one in the matching selector.*
You can also find the instance to the SumoSelect object by directly selecting your select element like
```javascript
$('select.selectBox')[0].sumo. .....
```
You can perform all the operations on the underlying original select and then reload the UI by
```javascript
$('select.selectBox')[0].sumo.reload();
```
##### You can bind your handlers to some sumoselect specific events eg.
```javascript
$('select.selectBox').on('sumo:opened', function(sumo) {
// Do stuff here
console.log("Drop down opened", sumo)
});
```
Available events
- `sumo:opened`
- `sumo:opening`
- `sumo:closing`
- `sumo:closed`
- `sumo:initialized`
- `sumo:unloaded`
**Settings**
Below are the available settings:
- `placeholder` `(string)` The palceholder text to be displayed in the rendered select widget (on priority basis). *Maximum priority is given to native placeholder attribute in select tag i.e.* - *`<select placeholder="this is a placeholder" />`* - *Then the option with disabled and selected attribute i.e.* *`<option disabled selected value="foo" >`* - *Last to to the given placeholder attribute in the settings.*
- `csvDispCount` `(int)` The number of items to be displayed in the widget seperated by a `,` after that the text will be warped as *3+ Selected*. Set `0` for all the options.
- `captionFormat` `(string)` Its the format in which you want to see the caption when more than csvDispCount items are selected. its default value is `'{0} Selected'` ( here `{0}` will be replaced by the seletion count )
- `captionFormatAllSelected` `(string)` Format of caption text when all elements are selected. set null to use captionFormat. It will not work if there are disabled elements in select. default is `'{0} all selected!'`
- `floatWidth` `(int)` Minimum screen width of device below which the options list is rendered in floating popup fashion.
- `forceCustomRendering` `(boolean)` Force the custom modal ( Floating list ) on all devices below floatWidth resolution.
- `nativeOnDevice` `(Array[string])` The keywords to identify a mobile device from useragent string. The system default select list is rendered on the matched device.
- `outputAsCSV` `(boolean)` `true` to POST data as csv ( false for default select )
- `csvSepChar` `(string)` Seperation char if `outputAsCSV` is set to `true`
- `okCancelInMulti` `(boolean)` Displays Ok Cancel buttons in desktop mode multiselect also.
- `isClickAwayOk` `(boolean)` for okCancelInMulti=true. sets whether click outside will trigger Ok or Cancel (default is cancel).
- `triggerChangeCombined` `(boolean)` In Multiselect mode whether to trigger change event on individual selection of each item or on combined selection ( pressing of OK or Cancel button ).
- `selectAll` `(boolean)` To display select all check or not
- `search` `(boolean)` To enable searching in sumoselect (default is false).
- `searchText` `(string)` placeholder for search input.
- `searchFn` `(function)` Custom search function. Following parameters will be passed along: haystack, needle, el
- `noMatch` `(string)` placeholder to display if no itmes matches the search term (default 'No matches for "{0}"').
- `prefix` `(string)` prefix to prepend the selected text (default is empty) eg. '<b>Hello</b>'.
- `locale` `(array)` change the text used in plugin (```['OK', 'Cancel', 'Select All']```). Note: don't break the sequence or skip items.
- `up` `(boolean)` the direction in which to open the dropdown (default: false)
- `showTitle` `(boolean)` set to false to prevent title (tooltip) from appearing (deafult `true`)
- `max` `(int)` Maximum number of selected options (if multiple)
- `renderLi` `(function)` Custom `<li>` item renderer
- `clearAll` `(boolean)` Display "Clear all" in multiselect (deafult `false`)
- `closeAfterClearAll` `(boolean)` Close dropdown after clicking on "Clear all" (deafult `false`)
**The default settings are :**
```javascript
{
placeholder: 'Select Here',
csvDispCount: 3,
captionFormat:'{0} Selected',
captionFormatAllSelected:'{0} all selected!',
floatWidth: 400,
forceCustomRendering: false,
nativeOnDevice: ['Android', 'BlackBerry', 'iPhone', 'iPad', 'iPod', 'Opera Mini', 'IEMobile', 'Silk'],
outputAsCSV: false,
csvSepChar: ',',
okCancelInMulti: false,
isClickAwayOk: false,
triggerChangeCombined: true,
selectAll: false,
search: false,
searchText: 'Search...',
searchFn: function (haystack, needle, el) {
return haystack.toLowerCase().indexOf(needle.toLowerCase()) < 0;
},
noMatch: 'No matches for "{0}"',
prefix: '',
locale: ['OK', 'Cancel', 'Select All'],
up: false,
showTitle: true,
max: null,
renderLi: (li, originalOption) => li,
clearAll: false,
closeAfterClearAll: false
}
```
[Furthur Documentation](https://hemantnegi.github.io/jquery.sumoselect/)
## License
Copyright (c) 2016 Hemant Negi Licensed under the MIT license.

12
odoo_website_helpdesk/static/src/cdn/babel.config.json

@ -0,0 +1,12 @@
{
"presets": [
[
"@babel/preset-env",
{
"useBuiltIns": "entry",
"corejs": 2
}
],
"minify"
]
}

23
odoo_website_helpdesk/static/src/cdn/bower.json

@ -0,0 +1,23 @@
{
"name": "sumoselect",
"main": [
"jquery.sumoselect.js",
"sumoselect.css"
],
"version": "3.4.8",
"homepage": "https://github.com/HemantNegi/jquery.sumoselect",
"authors": [
"HemantNegi",
"B2F",
"ke-an"
],
"description": "A jQuery plugin that progressively enhances an HTML Select Box into a Single/Multiple option dropdown list",
"keywords": [
"multiselect",
"dropdown"
],
"dependencies": {
"jquery": ">=1.6"
},
"license": "MIT"
}

9
odoo_website_helpdesk/static/src/cdn/docs.bash

@ -0,0 +1,9 @@
# Generate IE friendly minified file at root
babel jquery.sumoselect.js -o jquery.sumoselect.min.js
# Generate minified CSS
minify sumoselect.css > sumoselect.min.css
# Copy minified files in docs
shx cp jquery.sumoselect.min.js docs/javascripts
shx cp sumoselect.min.css docs/stylesheets

BIN
odoo_website_helpdesk/static/src/cdn/docs/images/Thumbs.db

Binary file not shown.

BIN
odoo_website_helpdesk/static/src/cdn/docs/images/body-bg.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
odoo_website_helpdesk/static/src/cdn/docs/images/download-button.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

BIN
odoo_website_helpdesk/static/src/cdn/docs/images/github-button.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
odoo_website_helpdesk/static/src/cdn/docs/images/header-bg.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
odoo_website_helpdesk/static/src/cdn/docs/images/highlight-bg.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

BIN
odoo_website_helpdesk/static/src/cdn/docs/images/sidebar-bg.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

665
odoo_website_helpdesk/static/src/cdn/docs/index.html

@ -0,0 +1,665 @@
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" type="text/css" href="stylesheets/stylesheet.css" media="screen"/>
<link rel="stylesheet" type="text/css" href="stylesheets/pygment_trac.css" media="screen"/>
<link rel="stylesheet" type="text/css" href="stylesheets/print.css" media="print"/>
<meta name="description"
content="SumoSelect is a jquery plugin which beautifully renders a single or multiple HTML select element. Its cross device, cross browser all in one solution for complex select related problems. fully customizable and a vast set of functions.">
<link rel="author" href="https://plus.google.com/+HemantNegi"/>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<script>
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r;
i[r] = i[r] || function () {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date();
a = s.createElement(o),
m = s.getElementsByTagName(o)[0];
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m)
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
ga('create', 'UA-49935576-1', 'hemantnegi.github.io');
ga('send', 'pageview');
</script>
<title>Jquery.sumoselect by Hemant Negi</title>
<style type="text/css">
.auto-style1 {
width: 100%;
}
.auto-style2 {
font-weight: bold;
}
</style>
</head>
<body>
<header>
<div class="inner">
<h1>Jquery.sumoselect</h1>
<h2>A beautiful jQuery Single/Multi Select plugin which can be used on almost any device</h2>
<a href="https://github.com/HemantNegi/jquery.sumoselect" class="button">
<small>View project on</small>
GitHub</a>
</div>
</header>
<div id="content-wrapper">
<div class="inner clearfix">
<section id="main-content">
<div style="height:90px">
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- responsive -->
<ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-5462779613001343"
data-ad-slot="1391100519"
data-ad-format="auto"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
<h1>
<a name="jquerysumoselect" class="anchor" href="#jquerysumoselect"><span class="octicon octicon-link"></span></a>jquery.sumoselect
</h1>
<h2>
<a name="jquerysumoselectjs---a-cross-device-singlemulti-select-jquery-select-plugin" class="anchor"
href="#jquerysumoselectjs---a-cross-device-singlemulti-select-jquery-select-plugin"><span
class="octicon octicon-link"></span></a>jquery.sumoselect.js - A cross device Single/Multi Select jQuery
Select plugin.</h2>
<p>LIVE <a href="sumoselect_demo.html">DEMO HERE</a>
<p>Sumoselect full : <a href="https://github.com/HemantNegi/jquery.sumoselect/blob/master/jquery.sumoselect.js">jquery.sumoselect.js</a>
<p>Minified : <a href="https://github.com/HemantNegi/jquery.sumoselect/blob/master/jquery.sumoselect.min.js">jquery.sumoselect.min.js</a>
<p>
A jQuery plugin that progressively enhances an HTML Select Box into a Single/Multiple option dropdown list. The
dropdown list can be fully customiseable using siple css properties.
It can adapt itself according to any deveice, keeping in mind that the User Experience is not broken.
<p><strong>Notable Features</strong>
<ul>
<li>
Single and Multi select option.
</li>
<li>
Search Support
</li>
<li>
Optgroup support.
</li>
<li>
Localization support.
</li>
<li>
Fully customizable by simple css.
</li>
<li>
Supports almost all devices (Till now i didnt found one)
</li>
<li>
Intelligently Renders itself according to the devices.
</li>
<li>
Renders native Single/Multiple pop up on Android, ios, Windows and other devices.
</li>
<li>
Custom postback data format (Multiple select data can be passed either as csv or default select)
</li>
<li>
Selected, Disabled, Select All, keyboard navigation and Placeholder Support
</li>
<li>
Redesigned the UI (No external icons are used now and color scheme can be controlled by css)
</li>
<li>
Easily extendable to allow developers to create new widgets
</li>
<li>
Basic methods to handle all kinds of manipulations like adding item, remove item, disable, select etc.
</li>
</ul>
<h2>
<a name="requirements" class="anchor" href="#requirements"><span class="octicon octicon-link"></span></a>Requirements
</h2>
<p>jQuery 1.8.3+ (It is always recommended to use the latest version of jQuery)
<h2>
<a name="desktop-browser-support" class="anchor" href="#desktop-browser-support"><span
class="octicon octicon-link"></span></a>Desktop Browser Support</h2>
<p>IE8+, Firefox 4+, Chrome, Safari 4+, Opera 11+ (Other browsers may work, but I did not test on them)
<h2>
<a name="mobiletablet-browser-support" class="anchor" href="#mobiletablet-browser-support"><span
class="octicon octicon-link"></span></a>Mobile/Tablet Browser Support</h2>
<p>iOs 3+, Android 2.1+ , Windows Mobile (Other browsers may work, but I did not test on them)
<h2>
<a name="forking" class="anchor" href="#forking"><span class="octicon octicon-link"></span></a>Forking</h2>
<p>If you find that you need a feature that SumoSelect does not currently support, either let me know via the SumoSelect
issue tracker, or fork SumoSelect on Github and easily extend SumoSelect to create your own widget!
<h2>
<a name="usage" class="anchor" href="#usage"><span class="octicon octicon-link"></span></a>Usage</h2>
<p><em>To just go with the default options simply do</em>
<div class="highlight highlight-javascript">
<pre> <span class="nx">$</span><span class="p">(</span><span class="nb">document</span><span
class="p">).</span><span class="nx">ready</span><span class="p">(</span><span class="kd">function</span> <span
class="p">()</span> <span class="p">{</span>
<span class="nx">$</span><span class="p">(</span><span class="s1">'.SlectBox'</span><span
class="p">).</span><span class="nx">SumoSelect</span><span class="p">();</span>
<span class="p">});</span>
</pre>
</div>
<p><em>To provide optional settings, simply pass settings object to SumoSelect()</em>
<div class="highlight highlight-javascript">
<pre> <span class="nx">$</span><span class="p">(</span><span class="nb">document</span><span
class="p">).</span><span class="nx">ready</span><span class="p">(</span><span class="kd">function</span> <span
class="p">()</span> <span class="p">{</span>
<span class="nx">$</span><span class="p">(</span><span class="s1">'.SlectBox'</span><span
class="p">).</span><span class="nx">SumoSelect</span><span class="p">({
</span><span class="nx">placeholder</span><span class="o">:</span> <span
class="s1">'This is a placeholder'</span><span class="p">,
</span><span class="nx">csvDispCount</span><span class="o">:</span> <span class="mi">3</span> <span
class="p">
});</span>
<span class="p">});</span>
</pre>
</div>
<p><strong>Settings</strong>
<p>The following settings are available now:
<table class="auto-style1">
<tr>
<td class="auto-style2">Option</td>
<td class="auto-style2">Type</td>
<td class="auto-style2">Discription</td>
</tr>
<tr>
<td><code>placeholder</code></td>
<td><code>(string)</code></td>
<td>The palceholder text to be displayed in the rendered select widget (on priority basis). *Maximum priority is
given to native placeholder attribute in select tag i.e. - <code>&lt;select placeholder="this is a
placeholder" /&gt;</code> - Then the option with disabled and selected attribute i.e. <code>&lt;option
disabled selected value="foo" &gt;</code> - Last to to the given placeholder attribute in the settings.
*
</td>
</tr>
<tr>
<td><code>csvDispCount</code></td>
<td><code>(int)</code></td>
<td>The number of items to be displayed in the widget seperated by a <code>,</code> after that the text will be
warped as <em>3+ Selected</em>. Set <code>0</code> for all the options.
</td>
</tr>
<tr>
<td><code>captionFormat</code></td>
<td><code>(string)</code></td>
<td>Its the format in which you want to see the caption when more than csvDispCount items are selected. its
default value is<code>'{0} Selected'</code> ( here {0} will be replaced by the seletion count )
</td>
</tr>
<tr>
<td><code>captionFormatAllSelected</code></td>
<td><code>(string)</code></td>
<td>I Format of caption text when all elements are selected. set null to use captionFormat. It will not work if
there are disabled elements in select. default is <code>'{0} all selected!'</code>
</td>
</tr>
<tr>
<td><code>floatWidth</code></td>
<td><code>(int)</code></td>
<td>Minimum screen width of device below which the options list is rendered in floating popup fashion.</td>
</tr>
<tr>
<td><code>forceCustomRendering</code></td>
<td><code>(boolean)</code></td>
<td>&nbsp;Force the custom modal ( Floating list ) on all devices below floatWidth resolution.</td>
</tr>
<tr>
<td><code>nativeOnDevice</code></td>
<td><code>(Array[string])</code></td>
<td>The keywords to identify a mobile device from useragent string. The system default select list is rendered
on the matched device.
</td>
</tr>
<tr>
<td><code>outputAsCSV</code></td>
<td><code>(boolean)</code></td>
<td><code>true</code> to POST data as csv ( false for deafault select )</td>
</tr>
<tr>
<td><code>csvSepChar</code></td>
<td><code>(string)</code></td>
<td>Seperation char if <code>outputAsCSV</code> is set to <code>true</code></td>
</tr>
<tr>
<td><code>okCancelInMulti</code></td>
<td><code>(boolean)</code></td>
<td>Displays Ok Cancel buttons in desktop mode multiselect also.</td>
</tr>
<tr>
<td><code>isClickAwayOk</code></td>
<td><code>(boolean)</code></td>
<td>for okCancelInMulti=true. sets whether click outside will trigger Ok or Cancel (default is cancel).</td>
</tr>
<tr>
<td><code>triggerChangeCombined</code></td>
<td><code>(boolean)</code></td>
<td>In Multiselect mode whether to trigger change event on individual selection of each item or on combined
selection ( pressing of OK or Cancel button ).
</td>
</tr>
<tr>
<td><code>selectAll</code></td>
<td><code>(boolean)</code></td>
<td>To display select all check or not (default is false).</td>
</tr>
<tr>
<td><code>selectAllPartialCheck</code></td>
<td><code>(boolean)</code></td>
<td>Display a disabled checkbox in multiselect mode when all the items are not selected (default is true).</td>
</tr>
<tr>
<td><code>clearAll</code></td>
<td><code>(boolean)</code></td>
<td>To display "Clear all" in multiselect (default: false)</td>
</tr>
<tr>
<td><code>closeAfterClearAll</code></td>
<td><code>(boolean)</code></td>
<td>Close dropdown after clicking on "Clear all (clearAll=true)" (default: false)</td>
</tr>
<tr>
<td><code>search</code></td>
<td><code>(boolean)</code></td>
<td>To enable searching in sumoselect (default is false).</td>
</tr>
<tr>
<td><code>searchText</code></td>
<td><code>(string)</code></td>
<td>placeholder for search input.</td>
</tr>
<tr>
<td><code>searchFn</code></td>
<td><code>(function)</code></td>
<td>Custom search function.</td>
</tr>
<tr>
<td><code>noMatch</code></td>
<td><code>(string)</code></td>
<td>placeholder to display if no itmes matches the search term (default 'No matches for "{0}"').</td>
</tr>
<tr>
<td><code>prefix</code></td>
<td><code>(string)</code></td>
<td>prefix to prepend the selected text (default is empty) eg. '&lt;b&gt;Hello&lt;/b&gt;'.</td>
</tr>
<tr>
<td><code>locale</code></td>
<td><code>(array)</code></td>
<td>change the text used in plugin (['OK', 'Cancel', 'Select All', 'Clear ALL']). Note: don't break the sequence or skip items.</td>
</tr>
<tr>
<td><code>up</code></td>
<td><code>(boolean)</code></td>
<td>the direction in which to open the dropdown (default: false)</td>
</tr>
<tr>
<td><code>showTitle</code></td>
<td><code>(boolean)</code></td>
<td>set to false to prevent title (tooltip) from appearing (deafult: true)</td>
</tr>
<tr>
<td><code>max</code></td>
<td><code>(int)</code></td>
<td>Maximum number of selected options (if multiple)</td>
</tr>
<tr>
<td><code>renderLi</code></td>
<td><code>(function)</code></td>
<td>Custom &lt;li&gt; item renderer.</td>
</tr>
</table>
<p>
<strong>
<br/>
The default settings are :</strong>
<div class="highlight highlight-javascript">
<pre><span class="p">{</span>
<span class="nx">placeholder</span><span class="o">:</span> <span class="s1">'Select Here'</span><span
class="p">,</span>
<span class="nx">csvDispCount</span><span class="o">:</span> <span class="mi">3</span><span class="p">,</span>
<span class="nx">captionFormat</span><span class="o">:</span> <span class="mi">'{0} Selected'</span><span class="p">,</span>
<span class="nx">captionFormatAllSelected</span><span class="o">:</span> <span class="mi">''{0} all selected!''</span><span class="p">,</span>
<span class="nx">floatWidth</span><span class="o">:</span> <span class="mi">500</span><span class="p">,</span>
<span class="nx">forceCustomRendering</span><span class="o">:</span> <span class="kc">false</span><span
class="p">,</span>
<span class="nx">nativeOnDevice</span><span class="o">:</span> <span class="p">[</span><span
class="s1">'Android'</span><span class="p">,</span> <span class="s1">'BlackBerry'</span><span
class="p">,</span> <span class="s1">'iPhone'</span><span class="p">,</span> <span
class="s1">'iPad'</span><span class="p">,</span> <span class="s1">'iPod'</span><span
class="p">,</span> <span class="s1">'Opera Mini'</span><span class="p">,</span> <span
class="s1">'IEMobile'</span><span class="p">,</span> <span class="s1">'Silk'</span><span
class="p">],</span>
<span class="nx">outputAsCSV</span> <span class="o">:</span> <span class="kc">false</span><span class="p">,</span>
<span class="nx">csvSepChar</span> <span class="o">:</span> <span class="s1">','</span><span class="p">,</span>
<span class="nx">okCancelInMulti</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span>
<span class="nx">isClickAwayOk</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span>
<span class="nx">triggerChangeCombined</span> <span class="o">:</span> <span class="kc">true</span><span
class="p">,</span>
<span class="nx">selectAll</span> <span class="o">:</span> <span class="kc">false</span><span class="p">,</span>
<span class="nx">selectAllPartialCheck</span> <span class="o">:</span> <span class="kc">true</span><span class="p">,</span>
<span class="nx">search</span> <span class="o">:</span> <span class="kc">false</span><span class="p">,</span>
<span class="nx">searchText</span> <span class="o">:</span> <span class="kc">'Search...'</span><span class="p">,</span>
<span class="nx">searchFn</span> <span class="o">:</span> <span class="kc">function(haystack, needle, el){ ... }</span><span class="p">,</span>
<span class="nx">noMatch</span> <span class="o">:</span> <span class="kc">'No matches for "{0}"'</span><span class="p">,</span>
<span class="nx">prefix</span> <span class="o">:</span> <span class="kc">''</span><span class="p">,</span>
<span class="nx">locale</span> <span class="o">:</span> <span class="p"> [</span><span
class="s1">'OK'</span><span class="p">,</span> <span class="s1">'Cancel'</span><span
class="p">,</span> <span class="s1">'Select All'</span>],</span>
<span class="nx">up</span> <span class="o">:</span> <span class="kc">'false'</span><span class="p">,</span>
<span class="nx">showTitle</span> <span class="o">:</span> <span class="kc">'true'</span><span class="p">,</span>
<span class="nx">max</span> <span class="o">:</span> <span class="kc">null</span><span class="p">,</span>
<span class="nx">renderLi</span> <span class="o">:</span> <span class="kc">(li, originalOption) => li</span><span class="p">,</span>
<span class="p">}</span>
</pre>
</div>
<h2><a name="Methods" class="anchor" href="#Methods"><span class="octicon octicon-link"></span></a>Events</h2>
<p>Sumoselect raise some very helpful events on which you can hook your custom handlers.</p>
<div class="highlight highlight-javascript"><pre>
$(<span class="s1">'select.SlectBox'</span>).on(<span class="s1">'sumo:opened'</span>, function(sumo) {
<span class="cm">// Do stuff here</span>
console.log(<span class="s1">"Drop down opened"</span>, sumo)
});</pre>
</div>
<p>
Available events
</p>
<div class="highlight highlight-javascript"><pre>
<span class="cm">// Drop down initialized.</span>
<span class="nb">sumo:initialized</span>
<span class="cm">// Drop down opening</span>
<span class="nb">sumo:opening</span>
<span class="cm">// Drop down opened</span>
<span class="nb">sumo:opened</span>
<span class="cm">// Drop down closing</span>
<span class="nb">sumo:closing</span>
<span class="cm">// Drop down closed.</span>
<span class="nb">sumo:closed</span>
<span class="cm">// Drop down unloaded.</span>
<span class="nb">sumo:unloaded</span></pre>
</div>
<h2><a name="Methods" class="anchor" href="#Methods"><span class="octicon octicon-link"></span></a>Methods</h2>
<p>To call below functions you need to get the instance of SumoSelect object which can be done as
<div class="highlight highlight-javascript">
<pre> <span class="nx"><span class="nb">var</span> MySelect;
$</span><span class="p">(</span><span class="nb">document</span><span class="p">).</span><span
class="nx">ready</span><span class="p">(</span><span class="kd">function</span> <span
class="p">()</span> <span class="p">{</span>
<span class="nx">MySelect = $</span><span class="p">(</span><span class="s1">'.SlectBox'</span><span
class="p">).</span><span class="nx">SumoSelect</span><span class="p">();</span>
<span class="p">});</span>
</pre>
</div>
<p>Or simply you can get the instance from select element directly i.e.
<div class="highlight highlight-javascript">
<pre> <span class="nx"><span class="nb">var</span> MySelect = $</span><span class="p">(</span><span class="s1">'select.SlectBox'</span><span
class="p">)[0].sumo;</span></pre>
</div>
<p><em>Note : The SumoSelect object is directly binded with native select element not with the jquery object of
element.</em>
<p style="font-weight:bold;">Following is the list of methods of SumoSelect.
<ul>
<li>
<code>.unload()</code>
<p>Deactivate the SumoSelect plugin and display original select element. ( You can reinitialize the SumoSelect
for this select. )
<div class="highlight highlight-javascript">
<pre> <span class="nx">$</span><span class="p">(</span><span class="s1">'select.SlectBox'</span><span
class="p">)[0].sumo.unload();</span></pre>
</div>
</li>
<li>
<code>.add(value [,text][,index][,attrs])</code>
<p>Insert an new item in the select at a given index if index is provided else added to last. use index 0 to
insert at the begining.
<div class="highlight highlight-javascript">
<pre><span
class="cm">// adds a option with value and html set to &#39;india&#39; at the last.</span>
<span class="nx">$</span><span class="p">(</span><span class="s1">'select.SlectBox'</span><span class="p">)[0].sumo.add(&#39;</span><span
class="gr">india</span><span class="p">&#39;);
<span class="cm">// adds a option with value and html set to &#39;india&#39; at index no 3.</span>
<span class="nx">$</span>(<span class="s1">'select.SlectBox'</span>)[0].sumo.add(&#39;<span class="gr">india</span>&#39;,3);
<span class="cm">// adds a option with value = &#39;india&#39; and html = &#39;Indian&#39; at the last.</span>
<span class="nx">$</span>(<span class="s1">'select.SlectBox'</span>)[0].sumo.add(&#39;<span class="gr">india</span>&#39;,&#39;</span><span
class="gr">Indian</span><span class="p">&#39;);
<span class="cm">// adds a option with value and html set to &#39;india&#39; at index no 0.</span>
<span class="nx">$</span>(<span class="s1">'select.SlectBox'</span>)[0].sumo.add(&#39;<span class="gr">india</span>&#39;,&#39;</span><span
class="gr">Indian&#39;</span><span class="p">,0);</span></pre>
<span class="cm">// adds a option with value and html set to &#39;india&#39; at index no 0 with some attributes.</span>
<span class="nx">$</span>(<span class="s1">'select.SlectBox'</span>)[0].sumo.add(&#39;<span class="gr">india</span>&#39;,&#39;</span><span
class="gr">Indian&#39;</span><span class="p">,0, {'data-test': 'test'});</span></pre>
</div>
</li>
<li>
<code>.remove(index)</code>
<p>Removes an item from a given index number.
<div class="highlight highlight-javascript">
<pre> <span class="nx">$</span><span class="p">(</span><span class="s1">'select.SlectBox'</span><span
class="p">)[0].sumo.remove(2);</span></pre>
</div>
</li>
<li>
<code>.selectItem(index/value)</code>
<p>Selects (check an item) an item in the list by index or by its value. You can select multiple items in case of a multiselect.
<div class="highlight highlight-javascript">
<pre><span class="cm">//selects the item at index 2</span>
<span class="nx">$</span><span class="p">(</span><span class="s1">'select.SlectBox'</span><span class="p">)[0].sumo.selectItem(2);</span><span class="cm">
//selects the item having value "volo"</span>
<span class="nx">$</span><span class="p">(</span><span class="s1">'select.SlectBox'</span><span class="p">)[0].sumo.selectItem('volo');</span></pre>
</div>
</li>
<li>
<code>.unSelectItem(index/value)</code>
<p>unselect (uncheck an item) an item in list by index or by value
<div class="highlight highlight-javascript">
<pre><span class="cm">//unselects the item at index 2</span>
<span class="nx">$</span><span class="p">(</span><span class="s1">'select.SlectBox'</span><span class="p">)[0].sumo.unSelectItem(2);</span>
<span class="cm">//unselects the item having value "volvo"</span>
<span class="nx">$</span><span class="p">(</span><span class="s1">'select.SlectBox'</span><span class="p">)[0].sumo.unSelectItem('volvo');</span></pre>
</div>
</li>
<li>
<code>.disableItem(index)</code>
<p>Disables and item in the list
<div class="highlight highlight-javascript">
<pre><span class="cm">//disables the item at index 2</span>
<span class="nx">$</span><span class="p">(</span><span class="s1">'select.SlectBox'</span><span class="p">)[0].sumo.disableItem(2);</span></pre>
</div>
</li>
<li>
<code>.enableItem(index)</code>
<p>Enables and item in the list
<div class="highlight highlight-javascript">
<pre><span class="cm">//enables the item at index 2</span>
<span class="nx">$</span><span class="p">(</span><span class="s1">'select.SlectBox'</span><span class="p">)[0].sumo.enableItem(2);</span></pre>
</div>
</li>
<li>
<code>.selectAll()</code>
<p>Selects all items list
<div class="highlight highlight-javascript">
<pre><span class="cm">//selects all items (excluding disabled)</span>
<span class="nx">$</span><span class="p">(</span><span class="s1">'select.SlectBox'</span><span class="p">)[0].sumo.selectAll();</span></pre>
</div>
</li>
<li>
<code>.unSelectAll()</code>
<p>Un selects all items in the list
<div class="highlight highlight-javascript">
<pre><span class="cm">//Un select all items</span>
<span class="nx">$</span><span class="p">(</span><span class="s1">'select.SlectBox'</span><span class="p">)[0].sumo.unSelectAll();</span></pre>
</div>
</li>
<li>
<code>.enable()</code>
<p>Enables the SumoSelect control
<div class="highlight highlight-javascript">
<pre><span class="nx">$</span><span class="p">(</span><span class="s1">'select.SlectBox'</span><span class="p">)[0].sumo.enable();</span></pre>
</div>
</li>
<li>
<code>.disable()</code>
<p>Disable the SumoSelect control
<div class="highlight highlight-javascript">
<pre><span class="nx">$</span><span class="p">(</span><span class="s1">'select.SlectBox'</span><span class="p">)[0].sumo.disable();</span></pre>
</div>
</li>
<li>
<code>.unSelectAll()</code>
<p>Un selects all items in the list
<div class="highlight highlight-javascript">
<pre><span class="cm">//Un select all items</span>
<span class="nx">$</span><span class="p">(</span><span class="s1">'select.SlectBox'</span><span class="p">)[0].sumo.unSelectAll();</span></pre>
</div>
</li>
<li>
<code>.reload()</code>
<p>This method reloads the UI over original select element. so now you can perform the desired operations on underlying select element and then update the UI od sumoselct after that.
<div class="highlight highlight-javascript">
<pre><span class="cm">//Reloads the UI of plugin.</span>
<span class="nx">$</span><span class="p">(</span><span class="s1">'select.SlectBox'</span><span class="p">)[0].sumo.reload();</span></pre>
</div>
</li>
</ul>
<p>*** You can add custom css class to options (css class added to option is added to the generated li.)
<h2>
<a name="license" class="anchor" href="#license"><span class="octicon octicon-link"></span></a>License</h2>
<p>Copyright (c) 2014 Hemant Negi Licensed under the MIT license.
</section>
<aside id="sidebar">
<a href="https://github.com/HemantNegi/jquery.sumoselect/zipball/master" class="button">
<small>Download</small>
.zip file
</a>
<a href="https://github.com/HemantNegi/jquery.sumoselect/tarball/master" class="button">
<small>Download</small>
.tar.gz file
</a>
<p class="repo-owner"><a href="https://github.com/HemantNegi/jquery.sumoselect"></a>is maintained by <a
href="https://github.com/HemantNegi">HemantNegi</a>.
<p>This page was generated by <a href="https://pages.github.com">GitHub Pages</a> using the Architect theme by <a
href="https://twitter.com/jasonlong">Jason Long</a>.
<p>Visit my Websites <br>
@<a href="https://www.4ono.com/" title="Job and Exam Notifications">admit card, sample papers, exam result</a><br>
@<a href="https://www.cbsenic2019.in/" title="CBSE Board Exam 2018">cbse 10th blueprints</a><br>
@<a href="https://www.4rnc.in/" title="all exam result and cutoff">Download Result</a><br>
@<a href="http://www.iplbhavishyavani.in/" title="IPL Prediction">IPL 2019 All Matches Prediction</a><br>
@<a href="http://www.iplt20prediction2019.in/" title="ipl today prediction">Today IPL Match Prediction</a><br>
@<a href="http://www.mahashivratri2019images.in/" title="mahashivratri animated images">Mahashivratri 2019 Wishes</a><br>
</p>
<div><script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- responsive -->
<ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-5462779613001343"
data-ad-slot="1391100519"
data-ad-format="auto"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script></div>
</aside>
</div>
</div>
</body>
</html>

102
odoo_website_helpdesk/static/src/cdn/docs/javascripts/jquery.sumoselect.min.js

@ -0,0 +1,102 @@
"use strict";function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}function _slicedToArray(a,b){return _arrayWithHoles(a)||_iterableToArrayLimit(a,b)||_unsupportedIterableToArray(a,b)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(a,b){if(a){if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);return"Object"===c&&a.constructor&&(c=a.constructor.name),"Map"===c||"Set"===c?Array.from(a):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?_arrayLikeToArray(a,b):void 0}}function _arrayLikeToArray(a,b){(null==b||b>a.length)&&(b=a.length);for(var c=0,d=Array(b);c<b;c++)d[c]=a[c];return d}function _iterableToArrayLimit(a,b){var c=null==a?null:"undefined"!=typeof Symbol&&a[Symbol.iterator]||a["@@iterator"];if(null!=c){var d,e,f=[],g=!0,h=!1;try{for(c=c.call(a);!(g=(d=c.next()).done)&&(f.push(d.value),!(b&&f.length===b));g=!0);}catch(a){h=!0,e=a}finally{try{g||null==c["return"]||c["return"]()}finally{if(h)throw e}}return f}}function _arrayWithHoles(a){if(Array.isArray(a))return a}/*global jQuery, define, module, require*/ /*!
* jquery.sumoselect
* http://hemantnegi.github.io/jquery.sumoselect
* 2016-12-12
*
* Copyright 2015 Hemant Negi
* Email : hemant.frnz@gmail.com
* Compressor http://refresh-sf.com/
*/(function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):"undefined"==typeof exports?a(jQuery):module.exports=a(require("jquery"))})(function(a){"namespace sumo";a.fn.SumoSelect=function(b){// Extra check for IE compatibility
var c=function(a,b){var c=null;"function"==typeof Event?c=new Event(b,{bubbles:!0}):(c=document.createEvent("Event"),c.initEvent(b,!0,!0)),a.dispatchEvent(c)};// missing forEach on NodeList for IE11
window.NodeList&&!NodeList.prototype.forEach&&(NodeList.prototype.forEach=Array.prototype.forEach);// This is the easiest way to have default options.
var d={placeholder:"Select Here",// Dont change it here.
csvDispCount:3,// display no. of items in multiselect. 0 to display all.
captionFormat:"{0} Selected",// format of caption text. you can set your locale.
captionFormatAllSelected:"{0} all selected!",// format of caption text when all elements are selected. set null to use captionFormat. It will not work if there are disabled elements in select.
floatWidth:400,// Screen width of device at which the list is rendered in floating popup fashion.
forceCustomRendering:!1,// force the custom modal on all devices below floatWidth resolution.
nativeOnDevice:["Android","BlackBerry","iPhone","iPad","iPod","Opera Mini","IEMobile","Silk"],//
outputAsCSV:!1,// true to POST data as csv ( false for Html control array ie. default select )
csvSepChar:",",// separation char in csv mode
okCancelInMulti:!1,// display ok cancel buttons in desktop mode multiselect also.
isClickAwayOk:!1,// for okCancelInMulti=true. sets whether click outside will trigger Ok or Cancel (default is cancel).
triggerChangeCombined:!0,// im multi select mode whether to trigger change event on individual selection or combined selection.
selectAll:!1,// to display select all button in multiselect mode.|| also select all will not be available on mobile devices.
selectAllPartialCheck:!0,// Display a disabled checkbox in multiselect mode when all the items are not selected.
search:!1,// to display input for filtering content. selectAlltext will be input text placeholder
searchText:"Search...",// placeholder for search input
searchFn:function searchFn(a,b){// search function
return 0>a.toLowerCase().indexOf(b.toLowerCase())},noMatch:"No matches for \"{0}\"",prefix:"",// some prefix usually the field name. eg. '<b>Hello</b>'
locale:["OK","Cancel","Select All","Clear all"],// all text that is used. don't change the index.
up:!1,// set true to open upside.
showTitle:!0,// set to false to prevent title (tooltip) from appearing
clearAll:!1,// im multi select - clear all checked options
closeAfterClearAll:!1,// im multi select - close select after clear
max:null,// Maximum number of options selected (when multiple)
// eslint-disable-next-line no-unused-vars
renderLi:function renderLi(a){return a}// Custom <li> item renderer
},e=this.each(function(){var e=this;// the original select object.
if(!this.sumo&&a(this).is("select")){//already initialized
var f=a.extend({},d,b,a(this).data());this.sumo={E:a(e),//the jquery object of original select element.
is_multi:a(e).attr("multiple"),//if its a multiple select
select:"",caption:"",placeholder:"",optDiv:"",CaptionCont:"",ul:"",is_floating:!1,is_opened:!1,//backdrop: '',
mob:!1,// if to open device default select
Pstate:[],lastUnselected:null,selectedCount:0,createElems:function createElems(){var b=this,c=b.E.find("option:checked");//break for mobile rendring.. if forceCustomRendering is false
return b.E.wrap("<div class=\"SumoSelect\" tabindex=\"0\" role=\"button\" aria-expanded=\"false\">"),c.each(function(a,b){b.selected=!0}),b.select=b.E.parent(),b.caption=a("<span>"),b.CaptionCont=a("<p class=\"CaptionCont SelectBox ".concat(b.E.attr("class"),"\" ><label><i></i></label></p>")).attr("style",b.E.attr("style")).prepend(b.caption),b.select.append(b.CaptionCont),b.is_multi||(f.okCancelInMulti=!1),b.E.attr("disabled")&&b.select.addClass("disabled").removeAttr("tabindex"),f.outputAsCSV&&b.is_multi&&b.E.attr("name")&&(b.select.append(a("<input class=\"HEMANT123\" type=\"hidden\" />").attr("name",b.E.attr("name")).val(b.getSelStr())),b.E.removeAttr("name")),b.isMobile()&&!f.forceCustomRendering?void b.setNativeMobile():void(//hide original select
//## Creating the list...
//branch for floating list in low res devices.
//Creating the markup for the available options
b.E.attr("name")&&b.select.addClass("sumo_".concat(b.E.attr("name").replace(/\[\]/,""))),b.E.addClass("SumoUnder").attr("tabindex","-1"),b.optDiv=a("<div class=\"optWrapper ".concat(f.up?"up":"","\">")),b.floatingList(),b.ul=a("<ul class=\"options\">"),b.optDiv.append(b.ul),f.clearAll&&b.is_multi&&b.ClearAll(),f.selectAll&&b.is_multi&&!f.max&&b.SelAll(),f.search&&b.Search(),b.ul.append(b.prepItems(b.E.children())),b.is_multi&&b.multiSelelect(),b.select.append(b.optDiv),b._handleMax(),b.basicEvents(),b.selAllState());// if there is a name attr in select add a class to container div
},prepItems:function prepItems(b,c){var d=[],e=this;return a(b).each(function(b,f){// parsing options to li
var g=a(f);d.push(g.is("optgroup")?a("<li class=\"group ".concat(f.disabled?"disabled":"","\"><label></label><ul></ul></li>")).find("label").text(g.attr("label")).end().find("ul").append(e.prepItems(g.children(),f.disabled)).end():e.createLi(g,c))}),d},//## Creates a LI element from a given option and binds events to it
//## returns the jquery instance of li (not inserted in dom)
createLi:function createLi(b,c){var d=this;b.attr("value")||b.attr("value",b.val());var e=a("<li class=\"opt\"><label>".concat(b.html(),"</label></li>"));return e.data("opt",b),b.data("li",e),d.is_multi&&e.prepend("<span><i></i></span>"),(b[0].disabled||c)&&e.addClass("disabled"),d.onOptClick(e),b[0].selected&&(e.addClass("selected"),d.selectedCount++),b.attr("class")&&e.addClass(b.attr("class")),b.attr("title")&&e.attr("title",b.attr("title")),f.renderLi(e,b)},//## Returns the selected items as string in a Multiselect.
getSelStr:function getSelStr(){// get the pre selected items.
var b=[];return this.E.find("option:checked").each(function(){b.push(a(this).val())}),b.join(f.csvSepChar)},//## THOSE OK/CANCEL BUTTONS ON MULTIPLE SELECT.
multiSelelect:function multiSelelect(){var b=this;b.optDiv.addClass("multiple"),b.okbtn=a("<p tabindex=\"0\" class=\"btnOk\"></p>").click(function(){b._okbtn(),b.hideOpts()});var c=_slicedToArray(f.locale,1);b.okbtn[0].innerText=c[0],b.cancelBtn=a("<p tabindex=\"0\" class=\"btnCancel\"></p>").click(function(){b._cnbtn(),b.hideOpts()});var d=_slicedToArray(f.locale,2);b.cancelBtn[0].innerText=d[1];var e=b.okbtn.add(b.cancelBtn);b.optDiv.append(a("<div class=\"MultiControls\">").append(e)),e.on("keydown.sumo",function(c){var d=a(this);switch(c.which){case 32:// space
case 13:d.trigger("click");break;case 9://tab
if(d.hasClass("btnOk"))return;break;case 27:return b._cnbtn(),void b.hideOpts();default:}c.stopPropagation(),c.preventDefault()})},_okbtn:function _okbtn(){var a=this,b=0;f.triggerChangeCombined&&(a.E.find("option:checked").length===a.Pstate.length?a.E.find("option").each(function(c,d){d.selected&&0>a.Pstate.indexOf(c)&&(b=1)}):b=1,b&&(a.callChange(),a.setText()))},_cnbtn:function _cnbtn(){var a=this;//remove all selections
a.E.find("option:checked").each(function(){this.selected=!1}),a.optDiv.find("li.selected").removeClass("selected");//restore selections from saved state.
for(var b=0;b<a.Pstate.length;b++)a.E.find("option")[a.Pstate[b]].selected=!0,a.ul.find("li.opt").eq(a.Pstate[b]).addClass("selected");a.setText(),a.selAllState()},_handleMax:function _handleMax(){f.max&&(this.selectedCount>=+f.max?this.optDiv.find("li.opt").not(".hidden").each(function(b,c){a(c).hasClass("selected")||a(c).addClass("temporary-disabled disabled")}):this.optDiv.find("li.opt").not(".hidden").each(function(b,c){a(c).hasClass("temporary-disabled")&&a(c).removeClass("temporary-disabled disabled")}))},ClearAll:function ClearAll(){var b=this;if(b.is_multi){b.selAll=a("<p class=\"reset-all\"><span><i></i></span><label></label></p>");var c=_slicedToArray(f.locale,4);b.selAll.find("label")[0].innerText=c[3],b.optDiv.addClass("resetAll"),b.selAll.on("click",function(){b.selAll.removeClass("selected"),b.toggSelAll(!1,1),f.closeAfterClearAll&&b.hideOpts()}),b.optDiv.prepend(b.selAll)}},SelAll:function SelAll(){var b=this;if(b.is_multi){b.selAll=a("<p class=\"select-all\"><span><i></i></span><label></label></p>");var c=_slicedToArray(f.locale,3);b.selAll.find("label")[0].innerText=c[2],b.optDiv.addClass("selall"),b.selAll.on("click",function(){b.selAll.toggleClass("selected"),b.toggSelAll(b.selAll.hasClass("selected"),1),b.selAllState()}),b.optDiv.prepend(b.selAll)}},// search module (can be removed if not required.)
Search:function Search(){var c=this,d=c.CaptionCont.addClass("search"),e=a("<p class=\"no-match\">"),g=b.searchFn&&"function"==typeof b.searchFn?b.searchFn:f.searchFn;c.ftxt=a("<input type=\"text\" class=\"search-txt\" value=\"\" autocomplete=\"off\">").on("click",function(a){a.stopPropagation()}),c.ftxt[0].placeholder=f.searchText,d.append(c.ftxt),c.optDiv.children("ul").after(e),c.ftxt.on("keyup.sumo",function(){var b=c.optDiv.find("ul.options li.opt").each(function(b,d){var e=a(d),f=e.data("opt"),h=f[0];h.hidden=g(e.text(),c.ftxt.val(),e),e.toggleClass("hidden",h.hidden)}).not(".hidden");// Hide opt-groups with no options matched
c.optDiv[0].querySelectorAll("li.group").forEach(function(a){a.querySelector("li:not(.hidden)")?a.classList.remove("hidden"):a.classList.add("hidden")}),e.html(f.noMatch.replace(/\{0\}/g,"<em></em>")).toggle(!b.length),e.find("em").text(c.ftxt.val()),c.selAllState()})},selAllState:function selAllState(){var b=this;if(f.selectAll&&b.is_multi){var c=0,d=0;b.optDiv.find("li.opt:not(.disabled):not(.hidden)").each(function(b,f){a(f).hasClass("selected")&&c++,d++}),c==d?b.selAll.removeClass("partial").addClass("selected"):0===c?b.selAll.removeClass("selected partial"):(f.selectAllPartialCheck&&b.selAll.addClass("partial"),b.selAll.removeClass("selected"))}},showOpts:function showOpts(){var b=this;if(!b.E.attr("disabled")){if(b.E.trigger("sumo:opening",b),b.is_opened=!0,b.select.addClass("open").attr("aria-expanded","true"),b.E.trigger("sumo:opened",b),b.ftxt?b.ftxt.focus():b.select.focus(),a(document).on("click.sumo",function(a){if(!b.select.is(a.target)// if the target of the click isn't the container...
&&0===b.select.has(a.target).length){// ... nor a descendant of the container
if(!b.is_opened)return;b.hideOpts(),f.okCancelInMulti&&(f.isClickAwayOk?b._okbtn():b._cnbtn())}}),b.is_floating){var c=b.optDiv.children("ul").outerHeight()+2;// +2 is clear fix
b.is_multi&&(c+=+b.optDiv.css("padding-bottom")),b.optDiv.css("height",c),a("body").addClass("sumoStopScroll")}b.setPstate()}// if select is disabled then retrun
},//maintain state when ok/cancel buttons are available storing the indexes.
setPstate:function setPstate(){var a=this;a.is_multi&&(a.is_floating||f.okCancelInMulti)&&(a.Pstate=[],a.E.find("option").each(function(b,c){c.selected&&a.Pstate.push(b)}))},callChange:function callChange(){this.E.get().forEach(function(a){c(a,"change"),c(a,"click")})},hideOpts:function hideOpts(){var b=this;b.is_opened&&(b.E.trigger("sumo:closing",b),b.is_opened=!1,b.select.removeClass("open").attr("aria-expanded","false").find("ul li.sel").removeClass("sel"),b.E.trigger("sumo:closed",b),a(document).off("click.sumo"),a("body").removeClass("sumoStopScroll"),f.search&&(b.ftxt.val(""),b.ftxt.trigger("keyup.sumo")))},setOnOpen:function setOnOpen(){var a=this,b=a.optDiv.find("li.opt:not(.hidden)").eq(f.search?0:a.E[0].selectedIndex);b.hasClass("disabled")&&(b=b.next(":not(disabled)"),!b.length)||(a.optDiv.find("li.sel").removeClass("sel"),b.addClass("sel"),a.showOpts())},nav:function nav(a){var b=this,d=null,e=b.ul.find("li.opt.sel:not(.hidden)"),f=b.ul.find("li.opt:not(.disabled):not(.hidden)"),g=f.index(e);if(b.is_opened&&e.length){if(a&&0<g)d=f.eq(g-1);else if(!a&&g<f.length-1&&-1<g)d=f.eq(g+1);else return;// if no items before or after
e.removeClass("sel"),e=d.addClass("sel");// setting sel item to visible view.
var h=b.ul,i=h.scrollTop(),j=e.position().top+i;j>=i+h.height()-e.outerHeight()&&h.scrollTop(j-h.height()+e.outerHeight()),j<i&&h.scrollTop(j)}else b.setOnOpen()},basicEvents:function basicEvents(){var b=this;b.CaptionCont.click(function(a){b.E.trigger("click"),b.is_opened?b.hideOpts():b.showOpts(),a.stopPropagation()}),b.select.on("keydown.sumo",function(a){switch(a.which){case 38:b.nav(!0);break;case 40:b.nav(!1);break;case 65:// shortcut ctrl + a to select all and ctrl + shift + a to unselect all.
if(b.is_multi&&!f.max&&a.ctrlKey){b.toggSelAll(!a.shiftKey,1);break}else return;case 32:// space
if(f.search&&b.ftxt.is(a.target))return;break;case 13:b.is_opened?b.optDiv.find("ul li.sel").trigger("click"):b.setOnOpen();break;case 9:return void(f.okCancelInMulti||b.hideOpts());case 27:return f.okCancelInMulti&&b._cnbtn(),void b.hideOpts();default:return;// exit this handler for other keys
}a.preventDefault()}),a(window).on("resize.sumo",function(){b.floatingList()})},onOptClick:function onOptClick(b){var c=this;b.click(function(){var b=a(this);b.hasClass("disabled")||(c.is_multi?(b.toggleClass("selected"),b.data("opt")[0].selected=b.hasClass("selected"),!1===b.data("opt")[0].selected?(c.lastUnselected=b.data("opt")[0].textContent,c.selectedCount--):c.selectedCount++,f.max&&c._handleMax(),c.selAllState()):(b.parent().find("li.selected").removeClass("selected"),b.toggleClass("selected"),b.data("opt")[0].selected=!0,c.selectedCount=1),!(c.is_multi&&f.triggerChangeCombined&&(c.is_floating||f.okCancelInMulti))&&(c.setText(),c.callChange()),!c.is_multi&&c.hideOpts())})},// fixed some variables that were not explicitly typed (michc)
setText:function setText(){var a=this,b=0;if(a.placeholder="",a.is_multi){var e=a.E.find(":checked").not(":disabled");//selected options.
b=e.length,a.placeholder=f.csvDispCount&&e.length>f.csvDispCount?e.length===a.E.find("option").length&&f.captionFormatAllSelected?f.captionFormatAllSelected.replace(/\{0\}/g,e.length):f.captionFormat.replace(/\{0\}/g,e.length):e.toArray().map(function(a){return a.innerText}).join(", ")}else{var g=a.E.find(":checked").not(":disabled");a.placeholder=g.text(),b=g.length}var c=!1;a.placeholder||(c=!0,a.placeholder=a.E.attr("placeholder"),!a.placeholder&&(//if placeholder is there then set it
a.placeholder=a.E.find("option:disabled:checked").text())),a.select.attr("selected-count",b),a.select.attr("is-selected",b?"true":"false"),a.placeholder=a.placeholder?"".concat(f.prefix," ").concat(a.placeholder):f.placeholder,a.caption.text(a.placeholder),f.showTitle&&a.CaptionCont.attr("title",a.placeholder);//set the hidden field if post as csv is true.
var d=a.select.find("input.HEMANT123");return d.length&&d.val(a.getSelStr()),c?a.caption.addClass("placeholder"):a.caption.removeClass("placeholder"),a.placeholder},isMobile:function isMobile(){// Adapted from http://www.detectmobilebrowsers.com
// Checks for iOs, Android, Blackberry, Opera Mini, and Windows mobile devices
for(var a=navigator.userAgent||navigator.vendor||window.opera,b=0;b<f.nativeOnDevice.length;b++)if(0<a.toString().toLowerCase().indexOf(f.nativeOnDevice[b].toLowerCase()))return f.nativeOnDevice[b];return!1},setNativeMobile:function setNativeMobile(){var a=this;a.E.addClass("SelectClass"),a.mob=!0,a.E.change(function(){a.setText()})},floatingList:function floatingList(){var b=this;//called on init and also on resize.
//O.is_floating = true if window width is < specified float width
b.is_floating=a(window).width()<=f.floatWidth,b.optDiv.toggleClass("isFloating",b.is_floating),b.is_floating||b.optDiv.css("height",""),b.optDiv.toggleClass("okCancelInMulti",f.okCancelInMulti&&!b.is_floating)},//HELPERS FOR OUTSIDERS
// validates range of given item operations
vRange:function vRange(a){var b=this,c=b.E.find("option");if(c.length<=a||0>a)throw new Error("index out of bounds");return b},//toggles selection on c as boolean.
toggSel:function toggSel(b,c){var d=this,e=null;"number"==typeof c?(d.vRange(c),e=d.E.find("option")[c]):e=d.E.find("option[value=\"".concat(c,"\"]"))[0]||0,!e||e.disabled||e.selected!==b&&(f.max&&!e.selected&&d.selectedCount<f.max||e.selected||!f.max&&!e.selected)&&(e.selected=b,!d.mob&&a(e).data("li").toggleClass("selected",b),d.callChange(),d.setPstate(),d.setText(),d.selAllState())},//toggles disabled on c as boolean.
toggDis:function toggDis(a,b){var c=this.vRange(b);c.E.find("option")[b].disabled=a,a&&(c.E.find("option")[b].selected=!1),c.mob||c.optDiv.find("ul.options li.opt").eq(b).toggleClass("disabled",a).removeClass("selected"),c.setText()},// toggle disable/enable on complete select control
toggSumo:function toggSumo(a){var b=this;return b.enabled=a,b.select.toggleClass("disabled",a),a?(b.E.attr("disabled","disabled"),b.select.removeAttr("tabindex")):(b.E.removeAttr("disabled"),b.select.attr("tabindex","0")),b},// toggles all option on c as boolean.
// set direct=false/0 bypasses okCancelInMulti behaviour.
toggSelAll:function toggSelAll(b,c){var d=this,e=a.extend(!0,{},a._data(d.E.get(0),"events"));d.E.off(),d.is_multi?b?d.E.find("option").toArray().filter(function(a){return!a.selected&&!a.disabled&&"none"!==a.style.display}).forEach(function(b){a(b).data("li").hasClass("hidden")||(b.selected=!0,a(b).data("li").toggleClass("selected",!0))}):d.E.find("option").toArray().filter(function(a){return a.selected&&!a.disabled&&"none"!==a.style.display}).forEach(function(b){a(b).data("li").hasClass("hidden")||(b.selected=!1,a(b).data("li").toggleClass("selected",!1))}):b?console.warn("You called `SelectAll` on a non-multiple select"):d.E[0].selectedIndex=-1,a.each(e,function(b,c){a.each(c,function(a,b){d.E.on(b.type,b.handler)})}),(!d.is_multi||f.okCancelInMulti)&&d.is_multi||(d.callChange(),d.setText()),c||(!d.mob&&d.selAll&&d.selAll.removeClass("partial").toggleClass("selected",!!b),d.setText(),d.setPstate())},/* outside accessibility options
which can be accessed from the element instance.
*/reload:function reload(){var b=this.unload();return a(b).SumoSelect(f)},unload:function unload(){var a=this;return a.select.before(a.E),a.E.show(),a.E[0].classList.remove("SumoUnder","SelectClass"),f.outputAsCSV&&a.is_multi&&a.select.find("input.HEMANT123").length&&a.E.attr("name",a.select.find("input.HEMANT123").attr("name")),a.select.remove(),delete e.sumo,a.E.trigger("sumo:unloaded",a),e},//## add a new option to select at a given index.
add:function add(b,c,d,f){if("undefined"==typeof b)throw new Error("No value to add");var g=this,h=g.E.find("option"),i=c,j=d;"number"==typeof c?(j=c,i=b):"undefined"==typeof c&&(i=b);var k=a("<option></option>").val(b).html(i);if(f&&"object"===_typeof(f)&&a.each(f,function(a,b){k.attr(a,b)}),h.length<j)throw new Error("index out of bounds");return"undefined"==typeof j||h.length===j?(g.E.append(k),!g.mob&&g.ul.append(g.createLi(k))):(h.eq(j).before(k),!g.mob&&g.ul.find("li.opt").eq(j).before(g.createLi(k))),e},//## removes an item at a given index.
remove:function remove(a){var b=this.vRange(a);b.E.find("option").eq(a).remove(),b.mob||b.optDiv.find("ul.options li.opt").eq(a).remove(),b.setText()},// removes all but the selected one
removeAll:function removeAll(){for(var a=this,b=a.E.find("option"),c=b.length-1;0<=c;c--)!0!==b[c].selected&&a.remove(c)},find:function find(a){var b=this,c=b.E.find("option");for(var d in c)if(c[d].value===a)return+d;return-1},//## Select an item at a given index.
selectItem:function selectItem(a){this.toggSel(!0,a)},//## UnSelect an iten at a given index.
unSelectItem:function unSelectItem(a){this.toggSel(!1,a)},//## Select all items of the select.
selectAll:function selectAll(){this.toggSelAll(!0)},//## UnSelect all items of the select.
unSelectAll:function unSelectAll(){this.toggSelAll(!1)},//## Disable an iten at a given index.
disableItem:function disableItem(a){this.toggDis(!0,a)},//## Removes disabled an iten at a given index.
enableItem:function enableItem(a){this.toggDis(!1,a)},//## New simple methods as getter and setter are not working fine in ie8-
//## variable to check state of control if enabled or disabled.
enabled:!0,//## Enables the control
enable:function enable(){return this.toggSumo(!1)},//## Disables the control
disable:function disable(){return this.toggSumo(!0)},init:function init(){var a=this;return a.createElems(),a.setText(),a.E.trigger("sumo:initialized",a),a}},e.sumo.init()}});return 1===e.length?e[0]:e}});

1
odoo_website_helpdesk/static/src/cdn/docs/javascripts/main.js

@ -0,0 +1 @@
console.log('This would be the main JS file.');

1
odoo_website_helpdesk/static/src/cdn/docs/params.json

@ -0,0 +1 @@
{"name":"Jquery.sumoselect","tagline":"A jQuery Single/Multi Select plugin to which can be used on almost any device","body":"jquery.sumoselect\r\n=============\r\n\r\n\r\njquery.sumoselect.js - A cross device Single/Multi Select jQuery Select plugin.\r\n-------------------------------------------------------------------------------\r\n\r\nSumoselect full : [jquery.sumoselect.js](https://github.com/HemantNegi/jquery.sumoselect/blob/master/jquery.sumoselect.js)\r\n\r\nMinified : [jquery.sumoselect.min.js](https://github.com/HemantNegi/jquery.sumoselect/blob/master/jquery.sumoselect.min.js)\r\n\r\n\r\nA jQuery plugin that progressively enhances an HTML Select Box into a Single/Multiple option dropdown list. The dropdown list can be fully customiseable using siple css properties.\r\nIt can adapt itself according to any deveice, keeping in mind that the User Experience is not broken. \r\n\r\n\r\n**Notable Features**\r\n \r\n - Single and Multi select option.\r\n\r\n - Fully customizable by simple css.\r\n\r\n - Supports almost all devices (Till now i didnt found one)\r\n\r\n - Intelligently Renders itself according to the devices.\r\n\r\n - Renders native Single/Multiple pop up on Android, ios, Windows and other devices.\r\n \r\n - Custom postback data format (Multiple select data can be passed either as csv or default select)\r\n\r\n - Selected, Disabled, and Placeholder Support\r\n\r\n - Easily extendable to allow developers to create new widgets\r\n\r\n\r\n##Requirements\r\njQuery 1.8.3+ (It is always recommended to use the latest version of jQuery)\r\n\r\n\r\n##Desktop Browser Support\r\nIE8+, Firefox 4+, Chrome, Safari 4+, Opera 11+ (Other browsers may work, but I did not test on them)\r\n\r\n\r\n##Mobile/Tablet Browser Support\r\niOs 3+, Android 2.1+ , Windows Mobile (Other browsers may work, but I did not test on them)\r\n\r\n\r\n##Forking\r\nIf you find that you need a feature that SumoSelect does not currently support, either let me know via the SumoSelect issue tracker, or fork SumoSelect on Github and easily extend SumoSelect to create your own widget!\r\n\r\n##Usage\r\n\r\n*To just go with the default options simply do*\r\n\r\n```javascript\r\n $(document).ready(function () {\r\n $('.SlectBox').SumoSelect();\r\n });\r\n```\r\n\r\n*To provide optional settings, simply pass settings object to SumoSelect()*\r\n\r\n```javascript\r\n $(document).ready(function () {\r\n $('.SlectBox').SumoSelect({placeholder: 'This is a placeholder', csvDispCount: 3 });\r\n });\r\n```\r\n\r\n**Settings**\r\n\r\nThe following settings are available now:\r\n\r\n- `placeholder` `(string)` The palceholder text to be displayed in the rendered select widget (on priority basis). *Maximum priority is given to native placeholder attribute in select tag i.e. - `<select placeholder=\"this is a placeholder\" />` - Then the option with disabled and selected attribute i.e. `<option disabled selected value=\"foo\" >` - Last to to the given placeholder attribute in the settings. *\r\n\r\n- `csvDispCount` `(int)` The number of items to be displayed in the widget seperated by a `,` after that the text will be warped as *3+ Selected*. Set `0` for all the options.\r\n\r\n- `floatWidth` `(int)` Minimum screen width of device below which the options list is rendered in floating popup fashion.\r\n\r\n- `forceCustomRendering` `(boolean)` Force the custom modal ( Floating list ) on all devices below floatWidth resolution.\r\n\r\n- `nativeOnDevice` `(Array[string])` The keywords to identify a mobile device from useragent string. The system default select list is rendered on the matched device.\r\n\r\n- `outputAsCSV` `(boolean)` `true` to POST data as csv ( false for deafault select )\r\n\r\n- `csvSepChar` `(string)` Seperation char if `outputAsCSV` is set to `true`\r\n\r\n- `okCancelInMulti` `(boolean)` Displays Ok Cancel buttons in desktop mode multiselect also. \r\n\r\n- `triggerChangeCombined` `(boolean)` In Multiselect mode whether to trigger change event on individual selection of each item or on combined selection ( pressing of OK or Cancel button ).\r\n\r\n\r\n**The default settings are :**\r\n\r\n```javascript\r\n{\r\n placeholder: 'Select Here',\r\n csvDispCount: 3,\r\n floatWidth: 500,\r\n forceCustomRendering: false,\r\n nativeOnDevice: ['Android', 'BlackBerry', 'iPhone', 'iPad', 'iPod', 'Opera Mini', 'IEMobile', 'Silk'],\r\n outputAsCSV : true,\r\n csvSepChar : ',', \r\n okCancelInMulti: true, \r\n triggerChangeCombined : true\r\n}\r\n```\r\n\r\n## License\r\n\r\nCopyright (c) 2014 Hemant Negi Licensed under the MIT license.\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}

494
odoo_website_helpdesk/static/src/cdn/docs/select_responsive.html

@ -0,0 +1,494 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script src="javascripts/jquery.sumoselect.min.js"></script>
<link href="stylesheets/sumoselect.min.css" rel="stylesheet" />
<script type="text/javascript">
$(document).ready(function () {
window.asd = $('.SlectBox').SumoSelect({ csvDispCount: 6 });
window.test = $('.testsel').SumoSelect({okCancelInMulti:true });
window.testSelAll = $('.testSelAll').SumoSelect({okCancelInMulti:true, selectAll:true });
window.testSelAlld = $('.SlectBox-grp').SumoSelect({okCancelInMulti:true, selectAll:true });
window.testSelAll2 = $('.testSelAll2').SumoSelect({selectAll:true });
window.Search = $('.search-box').SumoSelect({ csvDispCount: 3, search: true, searchText:'Enter here.' });
window.searchSelAll = $('.search-box-sel-all').SumoSelect({ csvDispCount: 3, selectAll:true, search: true, searchText:'Enter here.', okCancelInMulti:true });
window.searchSelAll = $('.search-box-open-up').SumoSelect({ csvDispCount: 3, selectAll:true, search: true, searchText:'Enter here.', up:true });
window.groups_eg_g = $('.groups_eg_g').SumoSelect({selectAll:true, search:true });
});
</script>
<style type="text/css">
body{font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;color:#444;font-size:13px;}
p,div,ul,li{padding:0px; margin:0px;}
</style>
</head>
<body>
<h1>Simple</h1>
&nbsp;&nbsp;&nbsp;
<select name="somename" class="SlectBox" onclick="console.log($(this).val())" onchange="console.log('change is firing')">
<option disabled="disabled" selected="selected">disabled selected</option>
<!--placeholder-->
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
&nbsp;&nbsp;&nbsp;
<select class="SlectBox" disabled >
<option value="volvo">Volvo</option>
<option selected value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
<option disabled value="opt1">option1</option>
<option value="opt2">option2</option>
<option value="opt3">option3</option>
</select>
&nbsp;&nbsp;&nbsp;
<select class="SlectBox" placeholder="this is placeholder">
<option selected="selected">selected</option>
<option>Volvo</option>
<option>Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
&nbsp;&nbsp;&nbsp;
This is a inline select element
<select class="SlectBox" placeholder="this is placeholder" required="required">
<option selected="selected">selected</option>
<option>Volvo</option>
<option>Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
<option>Volvo</option>
<option>Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
<option>Volvo</option>
<option>Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
<option>Volvo</option>
<option>Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
<h1>Multiple</h1>
<form method="get">
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp; This is a inline select element
<select multiple="multiple" placeholder="Hello im from placeholder" class="SlectBox" required>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option disabled="disabled" value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
<option value="bmw">BMW</option>
</select>
<div class="SumoSelect">
<p class="CaptionCont SlectBoxa"><span>disabled selected</span><label><i></i></label></p>
<div class="optWrapper multiple">
<ul class="options">
<li><span><i></i></span>
<label>Volvo</label></li>
<li><span><i></i></span>
<label>saab</label></li>
<li><span><i></i></span>
<label>audi</label></li>
<li><span><i></i></span>
<label>bmw</label></li>
<li><span><i></i></span>
<label>porsche</label></li>
<li><span><i></i></span>
<label>ferrari</label></li>
<li class="selected"><span><i></i></span>
<label>hyundai</label></li>
<li><span><i></i></span>
<label>porsche</label></li>
<li><span><i></i></span>
<label>ferrari</label></li>
<li><span><i></i></span>
<label>hyundai is a good company but not too go0d !!!</label></li>
<li><span><i></i></span>
<label>porsche</label></li>
<li><span><i></i></span>
<label>ferrari</label></li>
<li><span><i></i></span>
<label>hyundai</label></li>
</ul>
</div>
</div>
<input type="submit" value="submit" />
<br />
<br />
<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
<select multiple="multiple" placeholder="Hello im from placeholder" class="testsel">
<option selected value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option disabled="disabled" value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
<option value="bmw">BMW</option>
<option value="porsche">Porche</option>
<option value="ferrari">Ferrari</option>
<option class="someclass" value="audi">Audi</option>
<option class="someclass" value="bmw">BMW</option>
<option class="someclass" value="porsche">Porche</option>
<option value="ferrari">Ferrari</option>
<option value="audi">Audi</option>
<option value="bmw">BMW</option>
<option value="porsche">Porche</option>
<option value="ferrari">Ferrari</option>
<option value="hyundai">Hyundai</option>
<option value="mitsubishi">Mitsubishi</option>
</select>
</form>
<br>
<h1>Select all option</h1>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
<select multiple="multiple" placeholder="Hello im from placeholder" onchange="console.log($(this).children(':selected').length)" class="testSelAll">
<option selected value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option disabled="disabled" value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
<option selected value="bmw">BMW</option>
<option value="porsche">Porche</option>
<option value="ferrari">Ferrari</option>
<option value="mitsubishi">Mitsubishi</option>
</select>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
<select multiple="multiple" placeholder="Hello im from placeholder" onchange="console.log($(this).children(':selected').length)" class="testSelAll2">
<option selected value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option disabled="disabled" value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
<option selected value="bmw">BMW</option>
<option value="porsche">Porche</option>
<option value="ferrari">Ferrari</option>
<option value="mitsubishi">Mitsubishi</option>
</select>
<h1>Groups</h1>
<select multiple="multiple" placeholder="Hello im from placeholder" class="SlectBox-grp">
<option selected value="saab">Saab</option>
<option value="opel">Opel</option>
<option disabled="disabled" value="mercedez">Mercedez</option>
<optgroup label="US Brands">
<option value="chrysler">Chrysler</option>
<option value="gm">General Motors</option>
<option value="ford">Ford</option>
<option disabled="disabled" value="plymouth">Plymouth</option>
</optgroup>
<optgroup label="French Brands">
<option value="citroen">Citroën</option>
<option value="peugeot">Peugeot</option>
<option selected value="renault">Renault</option>
<option value="nissan">Nissan</option>
</optgroup>
<optgroup label="Italian brands">
<option value="fiat">Fiat</option>
<option value="alpha-Romeo">Alpha Romeo</option>
<option value="lamborghini">Lamborghini</option>
</optgroup>
<optgroup disabled="disabled" label="German brands">
<option value="audi">Audi</option>
<option value="bMW">BMW</option>
<option value="volkswagen">Volkswagen</option>
</optgroup>
<option value="aston-martin">Aston Martin</option>
<option value="hyundai">Hyundai</option>
<option value="mitsubishi">Mitsubishi</option>
</select>
<select placeholder="Hello im from placeholder" class="SlectBox">
<option selected value="saab">Saab</option>
<option value="opel">Opel</option>
<option disabled="disabled" value="mercedez">Mercedez</option>
<optgroup label="US Brands">
<option value="chrysler">Chrysler</option>
<option value="gm">General Motors</option>
<option value="ford">Ford</option>
<option disabled="disabled" value="plymouth">Plymouth</option>
</optgroup>
<optgroup label="French Brands">
<option value="citroen">Citroën</option>
<option value="peugeot">Peugeot</option>
<option selected value="renault">Renault</option>
<option value="nissan">Nissan</option>
</optgroup>
<optgroup label="Italian brands">
<option value="fiat">Fiat</option>
<option value="alpha-Romeo">Alpha Romeo</option>
<option value="lamborghini">Lamborghini</option>
</optgroup>
<optgroup disabled="disabled" label="German brands">
<option value="audi">Audi</option>
<option value="bMW">BMW</option>
<option value="volkswagen">Volkswagen</option>
</optgroup>
<option value="aston-martin">Aston Martin</option>
<option value="hyundai">Hyundai</option>
<option value="mitsubishi">Mitsubishi</option>
</select>
<select placeholder="Hello im from placeholder" class="groups_eg">
<option class="hemant" selected value="saab">Saab</option>
<option class="hemant" value="opel">Opel</option>
<option disabled="disabled" value="mercedez">Mercedez</option>
<optgroup label="US Brands">
<option value="chrysler">Chrysler</option>
<option value="gm">General Motors</option>
<option value="ford">Ford</option>
<option disabled="disabled" value="plymouth">Plymouth</option>
</optgroup>
<optgroup label="French Brands">
<option value="citroen">Citroën</option>
<option value="peugeot">Peugeot</option>
<option selected value="renault">Renault</option>
<option value="nissan">Nissan</option>
</optgroup>
<optgroup disabled="disabled" label="German brands">
<option value="audi">Audi</option>
<option value="bMW">BMW</option>
<option value="volkswagen">Volkswagen</option>
</optgroup>
<optgroup label="Italian brands">
<option value="fiat">Fiat</option>
<option value="alpha-Romeo">Alpha Romeo</option>
<option value="lamborghini">Lamborghini</option>
</optgroup>
<option value="aston-martin">Aston Martin</option>
<option value="hyundai">Hyundai</option>
<option value="mitsubishi">Mitsubishi</option>
</select>
<select multiple="multiple" placeholder="Hello im from placeholder" class="groups_eg_g">
<option class="hemant" selected value="saab">Saab</option>
<option class="hemant" value="opel">Opel</option>
<option disabled="disabled" value="mercedez">Mercedez</option>
<optgroup label="US Brands">
<option value="chrysler">Chrysler</option>
<option value="gm">General Motors</option>
<option value="ford">Ford</option>
<option disabled="disabled" value="plymouth">Plymouth</option>
</optgroup>
<optgroup label="French Brands">
<option value="citroen">Citroën</option>
<option value="peugeot">Peugeot</option>
<option selected value="renault">Renault</option>
<option value="nissan">Nissan</option>
</optgroup>
<optgroup disabled="disabled" label="German brands">
<option value="audi">Audi</option>
<option value="bMW">BMW</option>
<option value="volkswagen">Volkswagen</option>
</optgroup>
<optgroup label="Italian brands">
<option value="fiat">Fiat</option>
<option value="alpha-Romeo">Alpha Romeo</option>
<option value="lamborghini">Lamborghini</option>
</optgroup>
<option value="aston-martin">Aston Martin</option>
<option value="hyundai">Hyundai</option>
<option value="mitsubishi">Mitsubishi</option>
</select>
<h1>Search</h1>
<select placeholder="Hello im from placeholder" class="search-box">
<option class="hemant" selected value="saab">Saab</option>
<option class="hemant" value="opel">Opel</option>
<option disabled="disabled" value="mercedez">Mercedez</option>
<optgroup label="US Brands">
<option value="chrysler">Chrysler</option>
<option value="gm">General Motors</option>
<option value="ford">Ford</option>
<option disabled="disabled" value="plymouth">Plymouth</option>
</optgroup>
<optgroup label="French Brands">
<option value="citroen">Citroën</option>
<option value="peugeot">Peugeot</option>
<option selected value="renault">Renault</option>
<option value="nissan">Nissan</option>
</optgroup>
<optgroup label="Italian brands">
<option value="fiat">Fiat</option>
<option value="alpha-Romeo">Alpha Romeo</option>
<option value="lamborghini">Lamborghini</option>
</optgroup>
<optgroup disabled="disabled" label="German brands">
<option value="audi">Audi</option>
<option value="bMW">BMW</option>
<option value="volkswagen">Volkswagen</option>
</optgroup>
<option value="aston-martin">Aston Martin</option>
<option value="hyundai">Hyundai</option>
<option value="mitsubishi">Mitsubishi</option>
</select>
<select placeholder="Hello im from placeholder" class="search-box">
<option class="hemant" selected value="saab">Saab</option>
<option class="hemant" value="opel">Opel</option>
<option disabled="disabled" value="mercedez">Mercedez</option>
<option value="aston-martin">Aston Martin</option>
<option value="hyundai">Hyundai</option>
<option value="mitsubishi">Mitsubishi</option>
</select>
<select multiple="multiple" placeholder="Hello im from placeholder" onchange="console.log($(this).children(':selected').length)" class="search-box">
<option selected value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option disabled="disabled" value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
<option selected value="bmw">BMW</option>
<option value="porsche">Porche</option>
<option value="ferrari">Ferrari</option>
<option value="mitsubishi">Mitsubishi</option>
</select>
<h1>Over flow hidden test</h1>
<style type="text/css">
.sumo_name_will_become_class{
position: absolute;
}
</style>
<div style="background:#ccc; width:100px; height: 200px; overflow: hidden;">
<select name="name_will_become_class" multiple="multiple" placeholder="Hello im from placeholder" onchange="console.log($(this).children(':selected').length)" class="search-box-sel-all">
<option selected value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
<option selected value="bmw">BMW</option>
<option value="porsche">Porche</option>
<option value="ferrari">Ferrari</option>
<option value="mitsubishi">Mitsubishi</option>
</select>
</div>
<h1>Open upside</h1>
<select multiple="multiple" placeholder="Hello im from placeholder"
onchange="console.log($(this).val())"
class="search-box-open-up">
<option selected value='"volvo"'>Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
<option selected value="bmw">BMW</option>
<option value="porsche">Porche</option>
<option value="ferrari">Ferrari</option>
<option value="mitsubishi">Mitsubishi</option>
</select>
<br />
<br />
<br /> <br />
<br />
<br /> <br />
<br />
<br /> <br />
<br />
<br /> <br />
<br />
<br /> <br />
<br />
<br /> <br />
<br />
<br /> <br />
<br />
<select multiple="multiple" name="somename10" class="testselect10">
<option value="volvo">Volvo</option>
<option >Saab</option>
<option disabled="disabled" value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
<option value="bmw">BMW</option>
<option disabled="disabled" value="porsche">Porche</option>
<option selected="selected" value="ferrari">Ferrari</option>
<option selected="selected" value="hyundai">Hyundai</option>
<option value="mitsubishi">Mitsubishi</option>
</select>
<table class="auto-style5">
<tr>
<td class="auto-style6">
<ul><li>
<input id="Button1" type="button" value="Attach SumoSelect" onclick="$('.testselect10').SumoSelect();" />
</li>
<li>
<input id="Button2" type="button" value="Detach SumoSelect" onclick="$('.testselect10')[0].sumo.unload();" />
</li>
<li>
<input id="Button3" type="button" value="Add item at index 1" onclick="$('.testselect10')[0].sumo.add('New Item',1);" />
</li>
<li>
<input id="Button4" type="button" value="Remove item at index 1" onclick="$('.testselect10')[0].sumo.remove(1);" />
</li>
<li>
<input id="Button5" type="button" value="Select item at index 1" onclick="$('.testselect10')[0].sumo.selectItem(1);" />
</li>
<li>
<input id="Button6" type="button" value="UnSelect item at index 1" onclick="$('.testselect10')[0].sumo.unSelectItem(1);" />
</li>
<li>
<input id="Button7" type="button" value="Disable item at index 1" onclick="$('.testselect10')[0].sumo.disableItem(1);" />
</li>
<li>
<input id="Button8" type="button" value="Enable item at index 1" onclick="$('.testselect10')[0].sumo.enableItem(1);" />
</li>
<li>
<input id="Button9" type="button" value="Toggle Enable disable" onclick="$('.testselect10')[0].sumo.disabled = !$('.testselect10')[0].sumo.disabled" />
</li>
</ul>
<br />
<br /> <br />
<br />
<br /> <br />
<br />
<br /> <br />
<br />
<br /> <br />
<br />
<br /> <br />
<br />
<br /> <br />
<br />
<br /> <br />
<br />
</td>
<td>
</td>
</tr>
</table>
</body>
</html>

226
odoo_website_helpdesk/static/src/cdn/docs/stylesheets/print.css

@ -0,0 +1,226 @@
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
body {
font-size: 13px;
line-height: 1.5;
font-family: 'Helvetica Neue', Helvetica, Arial, serif;
color: #000;
}
a {
color: #d5000d;
font-weight: bold;
}
header {
padding-top: 35px;
padding-bottom: 10px;
}
header h1 {
font-weight: bold;
letter-spacing: -1px;
font-size: 48px;
color: #303030;
line-height: 1.2;
}
header h2 {
letter-spacing: -1px;
font-size: 24px;
color: #aaa;
font-weight: normal;
line-height: 1.3;
}
#downloads {
display: none;
}
#main_content {
padding-top: 20px;
}
code, pre {
font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal;
color: #222;
margin-bottom: 30px;
font-size: 12px;
}
code {
padding: 0 3px;
}
pre {
border: solid 1px #ddd;
padding: 20px;
overflow: auto;
}
pre code {
padding: 0;
}
ul, ol, dl {
margin-bottom: 20px;
}
/* COMMON STYLES */
table {
width: 100%;
border: 1px solid #ebebeb;
}
th {
font-weight: 500;
}
td {
border: 1px solid #ebebeb;
text-align: center;
font-weight: 300;
}
form {
background: #f2f2f2;
padding: 20px;
}
/* GENERAL ELEMENT TYPE STYLES */
h1 {
font-size: 2.8em;
}
h2 {
font-size: 22px;
font-weight: bold;
color: #303030;
margin-bottom: 8px;
}
h3 {
color: #d5000d;
font-size: 18px;
font-weight: bold;
margin-bottom: 8px;
}
h4 {
font-size: 16px;
color: #303030;
font-weight: bold;
}
h5 {
font-size: 1em;
color: #303030;
}
h6 {
font-size: .8em;
color: #303030;
}
p {
font-weight: 300;
margin-bottom: 20px;
}
a {
text-decoration: none;
}
p a {
font-weight: 400;
}
blockquote {
font-size: 1.6em;
border-left: 10px solid #e9e9e9;
margin-bottom: 20px;
padding: 0 0 0 30px;
}
ul li {
list-style: disc inside;
padding-left: 20px;
}
ol li {
list-style: decimal inside;
padding-left: 3px;
}
dl dd {
font-style: italic;
font-weight: 100;
}
footer {
margin-top: 40px;
padding-top: 20px;
padding-bottom: 30px;
font-size: 13px;
color: #aaa;
}
footer a {
color: #666;
}
/* MISC */
.clearfix:after {
clear: both;
content: '.';
display: block;
visibility: hidden;
height: 0;
}
.clearfix {display: inline-block;}
* html .clearfix {height: 1%;}
.clearfix {display: block;}

69
odoo_website_helpdesk/static/src/cdn/docs/stylesheets/pygment_trac.css

@ -0,0 +1,69 @@
.highlight { background: #ffffff; }
.highlight .c { color: #999988; font-style: italic } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { font-weight: bold } /* Keyword */
.highlight .o { font-weight: bold } /* Operator */
.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */
.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #999999 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #800080; font-weight: bold; } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { font-weight: normal } /* Keyword.Constant */
.highlight .kd { font-weight: normal } /* Keyword.Declaration */
.highlight .kn { font-weight: bold } /* Keyword.Namespace */
.highlight .kp { font-weight: bold } /* Keyword.Pseudo */
.highlight .kr { font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #009999 } /* Literal.Number */
.highlight .s { color: #d14 } /* Literal.String */
.highlight .na { color: #008080 } /* Name.Attribute */
.highlight .nb { color: #0086B3 } /* Name.Builtin */
.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */
.highlight .no { color: #008080 } /* Name.Constant */
.highlight .ni { color: #800080 } /* Name.Entity */
.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */
.highlight .nn { color: #555555 } /* Name.Namespace */
.highlight .nt { color: #000080 } /* Name.Tag */
.highlight .nv { color: #008080 } /* Name.Variable */
.highlight .ow { font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mf { color: #009999 } /* Literal.Number.Float */
.highlight .mh { color: #009999 } /* Literal.Number.Hex */
.highlight .mi { color: #009999 } /* Literal.Number.Integer */
.highlight .mo { color: #009999 } /* Literal.Number.Oct */
.highlight .sb { color: #d14 } /* Literal.String.Backtick */
.highlight .sc { color: #d14 } /* Literal.String.Char */
.highlight .sd { color: #d14 } /* Literal.String.Doc */
.highlight .s2 { color: #d14 } /* Literal.String.Double */
.highlight .se { color: #d14 } /* Literal.String.Escape */
.highlight .sh { color: #d14 } /* Literal.String.Heredoc */
.highlight .si { color: #d14 } /* Literal.String.Interpol */
.highlight .sx { color: #d14 } /* Literal.String.Other */
.highlight .sr { color: #009926 } /* Literal.String.Regex */
.highlight .s1 { color: #d14 } /* Literal.String.Single */
.highlight .ss { color: #990073 } /* Literal.String.Symbol */
.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */
.highlight .vc { color: #008080 } /* Name.Variable.Class */
.highlight .vg { color: #008080 } /* Name.Variable.Global */
.highlight .vi { color: #008080 } /* Name.Variable.Instance */
.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */
.type-csharp .highlight .k { color: #0000FF }
.type-csharp .highlight .kt { color: #0000FF }
.type-csharp .highlight .nf { color: #000000; font-weight: normal }
.type-csharp .highlight .nc { color: #2B91AF }
.type-csharp .highlight .nn { color: #000000 }
.type-csharp .highlight .s { color: #A31515 }
.type-csharp .highlight .sc { color: #A31515 }

475
odoo_website_helpdesk/static/src/cdn/docs/stylesheets/stylesheet.css

@ -0,0 +1,475 @@
/* http://meyerweb.com/eric/tools/css/reset/
v2.0 | 20110126
License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
/* LAYOUT STYLES */
body {
font-size: 15px;
line-height: 1.5;
background: #fafafa url(../images/body-bg.jpg) 0 0 repeat;
font-family: 'Helvetica Neue', Helvetica, Arial, serif;
font-weight: 400;
color: #666;
}
a {
color: #2879d0;
}
a:hover {
color: #2268b2;
}
header {
padding-top: 40px;
padding-bottom: 40px;
font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif;
background: #2e7bcf url(../images/header-bg.jpg) 0 0 repeat-x;
border-bottom: solid 1px #275da1;
}
header h1 {
letter-spacing: -1px;
font-size: 72px;
color: #fff;
line-height: 1;
margin-bottom: 0.2em;
width: 540px;
}
header h2 {
font-size: 26px;
color: #9ddcff;
font-weight: normal;
line-height: 1.3;
width: 540px;
letter-spacing: 0;
}
.inner {
position: relative;
width: 940px;
margin: 0 auto;
}
#content-wrapper {
border-top: solid 1px #fff;
padding-top: 30px;
}
#main-content {
width: 690px;
float: left;
}
#main-content img {
max-width: 100%;
}
aside#sidebar {
width: 200px;
padding-left: 20px;
min-height: 504px;
float: right;
background: transparent url(../images/sidebar-bg.jpg) 0 0 no-repeat;
font-size: 12px;
line-height: 1.3;
}
aside#sidebar p.repo-owner,
aside#sidebar p.repo-owner a {
font-weight: bold;
}
#downloads {
margin-bottom: 40px;
}
a.button {
width: 134px;
height: 58px;
line-height: 1.2;
font-size: 23px;
color: #fff;
padding-left: 68px;
padding-top: 22px;
font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif;
}
a.button small {
display: block;
font-size: 11px;
}
header a.button {
position: absolute;
right: 0;
top: 0;
background: transparent url(../images/github-button.png) 0 0 no-repeat;
}
aside a.button {
width: 138px;
padding-left: 64px;
display: block;
background: transparent url(../images/download-button.png) 0 0 no-repeat;
margin-bottom: 20px;
font-size: 21px;
}
code, pre {
font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
color: #222;
margin-bottom: 30px;
font-size: 13px;
}
code {
background-color: #f2f8fc;
border: solid 1px #dbe7f3;
padding: 0 3px;
}
pre {
padding: 20px;
background: #fff;
text-shadow: none;
overflow: auto;
border: solid 1px #f2f2f2;
}
pre code {
color: #2879d0;
background-color: #fff;
border: none;
padding: 0;
}
ul, ol, dl {
margin-bottom: 20px;
}
/* COMMON STYLES */
hr {
height: 1px;
line-height: 1px;
margin-top: 1em;
padding-bottom: 1em;
border: none;
background: transparent url('../images/hr.png') 0 0 no-repeat;
}
table {
width: 100%;
border: 1px solid #ebebeb;
}
th {
font-weight: 500;
}
td { padding: 10px; border: 1px solid #ebebeb; text-align: left; font-weight: 300; vertical-align: top; }
form {
background: #f2f2f2;
padding: 20px;
}
/* GENERAL ELEMENT TYPE STYLES */
#main-content h1 {
font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif;
font-size: 2.8em;
letter-spacing: -1px;
color: #474747;
}
#main-content h1:before {
content: "/";
color: #9ddcff;
padding-right: 0.3em;
margin-left: -0.9em;
}
#main-content h2 {
font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif;
font-size: 22px;
font-weight: bold;
margin-bottom: 8px;
color: #474747;
}
#main-content h2:before {
content: "//";
color: #9ddcff;
padding-right: 0.3em;
margin-left: -1.5em;
}
#main-content h3 {
font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif;
font-size: 18px;
font-weight: bold;
margin-top: 24px;
margin-bottom: 8px;
color: #474747;
}
#main-content h3:before {
content: "///";
color: #9ddcff;
padding-right: 0.3em;
margin-left: -2em;
}
#main-content h4 {
font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif;
font-size: 15px;
font-weight: bold;
color: #474747;
}
h4:before {
content: "////";
color: #9ddcff;
padding-right: 0.3em;
margin-left: -2.8em;
}
#main-content h5 {
font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif;
font-size: 14px;
color: #474747;
}
h5:before {
content: "/////";
color: #9ddcff;
padding-right: 0.3em;
margin-left: -3.2em;
}
#main-content h6 {
font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif;
font-size: .8em;
color: #474747;
}
h6:before {
content: "//////";
color: #9ddcff;
padding-right: 0.3em;
margin-left: -3.7em;
}
#sidebar > p, #main-content > p {
margin-bottom: 20px !important;
}
a {
text-decoration: none;
}
p a {
font-weight: 400;
}
blockquote {
font-size: 1.6em;
border-left: 10px solid #e9e9e9;
margin-bottom: 20px;
padding: 0 0 0 30px;
}
ul {
list-style: disc inside;
padding-left: 20px;
}
ol {
list-style: decimal inside;
padding-left: 3px;
}
dl dd {
font-style: italic;
font-weight: 100;
}
footer {
background: transparent url('../images/hr.png') 0 0 no-repeat;
margin-top: 40px;
padding-top: 20px;
padding-bottom: 30px;
font-size: 13px;
color: #aaa;
}
footer a {
color: #666;
}
footer a:hover {
color: #444;
}
/* MISC */
.clearfix:after {
clear: both;
content: '.';
display: block;
visibility: hidden;
height: 0;
}
.clearfix {display: inline-block;}
* html .clearfix {height: 1%;}
.clearfix {display: block;}
/* #Media Queries
================================================== */
/* Smaller than standard 960 (devices and browsers) */
@media only screen and (max-width: 959px) {}
/* Tablet Portrait size to standard 960 (devices and browsers) */
@media only screen and (min-width: 768px) and (max-width: 959px) {
.inner {
width: 740px;
}
header h1, header h2 {
width: 340px;
}
header h1 {
font-size: 60px;
}
header h2 {
font-size: 30px;
}
#main-content {
width: 490px;
}
#main-content h1:before,
#main-content h2:before,
#main-content h3:before,
#main-content h4:before,
#main-content h5:before,
#main-content h6:before {
content: none;
padding-right: 0;
margin-left: 0;
}
}
/* All Mobile Sizes (devices and browser) */
@media only screen and (max-width: 767px) {
.inner {
width: 93%;
}
header {
padding: 20px 0;
}
header .inner {
position: relative;
}
header h1, header h2 {
width: 100%;
}
header h1 {
font-size: 48px;
}
header h2 {
font-size: 24px;
}
header a.button {
background-image: none;
width: auto;
height: auto;
display: inline-block;
margin-top: 15px;
padding: 5px 10px;
position: relative;
text-align: center;
font-size: 13px;
line-height: 1;
background-color: #9ddcff;
color: #2879d0;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
}
header a.button small {
font-size: 13px;
display: inline;
}
#main-content,
aside#sidebar {
float: none;
width: 100% ! important;
}
aside#sidebar {
background-image: none;
margin-top: 20px;
border-top: solid 1px #ddd;
padding: 20px 0;
min-height: 0;
}
aside#sidebar a.button {
display: none;
}
#main-content h1:before,
#main-content h2:before,
#main-content h3:before,
#main-content h4:before,
#main-content h5:before,
#main-content h6:before {
content: none;
padding-right: 0;
margin-left: 0;
}
}
/* Mobile Landscape Size to Tablet Portrait (devices and browsers) */
@media only screen and (min-width: 480px) and (max-width: 767px) {}
/* Mobile Portrait Size to Mobile Landscape Size (devices and browsers) */
@media only screen and (max-width: 479px) {}

1
odoo_website_helpdesk/static/src/cdn/docs/stylesheets/sumoselect.min.css

File diff suppressed because one or more lines are too long

522
odoo_website_helpdesk/static/src/cdn/docs/sumoselect_demo.html

@ -0,0 +1,522 @@
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="description" content="SumoSelect is a jquery plugin which beautifully renders a single or multiple HTML select element. Its cross device, cross browser all in one solution for complex select related problems. fully customizable and a vast set of functions.">
<link rel="author" href="https://plus.google.com/+HemantNegi"/>
<link rel="stylesheet" type="text/css" href="stylesheets/stylesheet.css" media="screen" />
<link rel="stylesheet" type="text/css" href="stylesheets/pygment_trac.css" media="screen" />
<link rel="stylesheet" type="text/css" href="stylesheets/print.css" media="print" />
<!--The required plugin code -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script src="javascripts/jquery.sumoselect.min.js"></script>
<link href="stylesheets/sumoselect.min.css" rel="stylesheet" />
<script type="text/javascript">
$(document).ready(function () {
$('.testselect1').SumoSelect();
$('.testselect2').SumoSelect();
$('.optgroup_test').SumoSelect();
$('.search_test').SumoSelect({search: true, searchText:'Enter here.'});
$('.testselect3').SumoSelect({ placeholder: 'This is a placeholder' });
$('.testselect5').SumoSelect();
$('.testselect6').SumoSelect();
$('.testselect7').SumoSelect({ okCancelInMulti: true });
$('.multi-clean').SumoSelect({ clearAll: true });
$('.multi-clean-close').SumoSelect({ closeAfterClearAll: true, clearAll: true });
$('.select1').SumoSelect({ okCancelInMulti: true, selectAll: true});
$('.select2').SumoSelect({selectAll: true});
$('.testselect8').SumoSelect({ okCancelInMulti: true, triggerChangeCombined: false });
$('.testselect9').SumoSelect({ okCancelInMulti: true, triggerChangeCombined: true, forceCustomRendering: true });
});
</script>
<!--The required plugin code -->
<script>
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date(); a = s.createElement(o),
m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
ga('create', 'UA-49935576-1', 'hemantnegi.github.io');
ga('send', 'pageview');
</script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<title>Jquery.sumoselect - Demo by Hemant Negi</title>
<style type="text/css">
.auto-style1 { color: #E81144; }
.auto-style2 { color: #E81144; }
pre { margin: 10px 0px 10px 0px; }
strong { font-weight: bold;color: #5F5F5F; }
.auto-style3 { color: #DD1144; }
.auto-style4 { color: #6666FF; }
.auto-style5 { width: 100%; }
.auto-style6 { width: 344px; }
.SumoSelect{font-size: 12px;}
</style>
</head>
<body>
<header style="padding-bottom: 20px; padding-top: 20px">
<div class="inner">
<h1 style="font-size: 30px">Jquery.sumoselect</h1>
<h2 style="font-size: 20px">A jQuery Single/Multi Select plugin which can be used on almost any device</h2>
<a href="https://github.com/HemantNegi/jquery.sumoselect" class="button"><small>View project on</small>GitHub</a>
</div>
</header>
<div id="content-wrapper">
<div class="inner clearfix">
<section id="main-content">
<h1>
<a name="jquerysumoselect" class="anchor" href="#jquerysumoselect"><span class="octicon octicon-link"></span></a>jquery.sumoselect - Demo</h1>
<p>First import a latest version of jquery in your page. Then the jquery.sumoselect.min.js and its css (sumoselect.min.css)</p>
<div class="highlight highlight-javascript">
<pre>
&lt;script src="<span class="auto-style1">http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js</span>"&gt;&lt;/script&gt;
&lt;script src="<span class="auto-style2">jquery.sumoselect.min.js</span>"&gt;&lt;script&gt;
&lt;link href="<span class="auto-style1">sumoselect.min.css</span>" rel="<span class="auto-style1">stylesheet</span>" /&gt;</pre>
</div>
<br />
<h2>
Simple</h2>
<p>
<strong>Single select.</strong></p>
<div class="highlight highlight-javascript">
<pre><span class="nx">$</span><span class="p">(</span><span class="s1">&#39;.testselect1'</span><span class="p">).</span><span class="nx">SumoSelect</span><span class="p">();</span></pre>
</div>
<select name="somename" class="testselect1">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select><br />
<br />
<p>
<strong>Multiple select.</strong></p>
<div class="highlight highlight-javascript">
<pre><span class="nx">$</span><span class="p">(</span><span class="s1">&#39;.testselect2'</span><span class="p">).</span><span class="nx">SumoSelect</span><span class="p">();</span></pre>
</div>
<select multiple="multiple" name="somename0" class="testselect2">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select><br />
<br />
<br />
<h2>
Optgroup Support</h2>
<p>
<div class="highlight highlight-javascript">
<pre><span class="nx">$</span><span class="p">(</span><span class="s1">&#39;.optgroup_test'</span><span class="p">).</span><span class="nx">SumoSelect</span><span class="p">();</span></pre>
</div>
<select multiple="multiple" placeholder="Hello im from placeholder" class="optgroup_test">
<option selected value="saab">Saab</option>
<option value="opel">Opel</option>
<option disabled="disabled" value="mercedez">Mercedez</option>
<optgroup label="US Brands">
<option value="chrysler">Chrysler</option>
<option value="gm">General Motors</option>
<option value="ford">Ford</option>
<option disabled="disabled" value="plymouth">Plymouth</option>
</optgroup>
<optgroup label="French Brands">
<option value="citroen">Citroën</option>
<option value="peugeot">Peugeot</option>
<option selected value="renault">Renault</option>
<option value="nissan">Nissan</option>
</optgroup>
<optgroup label="Italian brands">
<option value="fiat">Fiat</option>
<option value="alpha-Romeo">Alpha Romeo</option>
<option value="lamborghini">Lamborghini</option>
</optgroup>
<optgroup disabled="disabled" label="German brands">
<option value="audi">Audi</option>
<option value="bMW">BMW</option>
<option value="volkswagen">Volkswagen</option>
</optgroup>
<option value="aston-martin">Aston Martin</option>
<option value="hyundai">Hyundai</option>
<option value="mitsubishi">Mitsubishi</option>
</select><br />
<br />
<br />
<h2>
Search Support</h2>
<p>
<div class="highlight highlight-javascript">
<pre><span class="nx">$</span><span class="p">(</span><span class="s1">&#39;.search_test'</span><span class="p">).</span><span class="nx">SumoSelect</span><span class="p">({search: <span class="auto-style4">true</span>, searchText: <span class="auto-style3">'Enter here.'</span>});</span></pre>
</div>
<select placeholder="Hello im from placeholder" class="search_test">
<option class="hemant" selected value="saab">Saab</option>
<option class="hemant" value="opel">Opel</option>
<option disabled="disabled" value="mercedez">Mercedez</option>
<option value="aston-martin">Aston Martin</option>
<option value="hyundai">Hyundai</option>
<option value="mitsubishi">Mitsubishi</option>
</select>
<br><br>
<select multiple="multiple" placeholder="Hello im from placeholder" onchange="console.log($(this).children(':selected').length)" class="search_test">
<option selected value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option disabled="disabled" value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
<option selected value="bmw">BMW</option>
<option value="porsche">Porche</option>
<option value="ferrari">Ferrari</option>
<option value="mitsubishi">Mitsubishi</option>
</select>
<br><br>
<select multiple="multiple" placeholder="Hello im from placeholder" class="search_test">
<option selected value="saab">Saab</option>
<option value="opel">Opel</option>
<option disabled="disabled" value="mercedez">Mercedez</option>
<optgroup label="US Brands">
<option value="chrysler">Chrysler</option>
<option value="gm">General Motors</option>
<option value="ford">Ford</option>
<option disabled="disabled" value="plymouth">Plymouth</option>
</optgroup>
<optgroup label="French Brands">
<option value="citroen">Citroën</option>
<option value="peugeot">Peugeot</option>
<option selected value="renault">Renault</option>
<option value="nissan">Nissan</option>
</optgroup>
<optgroup label="Italian brands">
<option value="fiat">Fiat</option>
<option value="alpha-Romeo">Alpha Romeo</option>
<option value="lamborghini">Lamborghini</option>
</optgroup>
<optgroup disabled="disabled" label="German brands">
<option value="audi">Audi</option>
<option value="bMW">BMW</option>
<option value="volkswagen">Volkswagen</option>
</optgroup>
<option value="aston-martin">Aston Martin</option>
<option value="hyundai">Hyundai</option>
<option value="mitsubishi">Mitsubishi</option>
</select>
<br />
<br />
<br />
<h2>
With placeholder text</h2>
<br />
<p>
<strong>Multiple select.</strong></p>
<div class="highlight highlight-javascript">
<pre><span class="nx">$</span><span class="p">(</span><span class="s1">&#39;.testselect3'</span><span class="p">).</span><span class="nx">SumoSelect</span><span class="p">({placeholder: <span class="auto-style3">&#39;This is a placeholder&#39;</span>});</span></pre>
</div>
<select multiple="multiple" name="somename" class="testselect3">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
<option value="bmw">BMW</option>
<option value="porsche">Porche</option>
<option value="ferrari">Ferrari</option>
<option value="hyundai">Hyundai</option>
<option value="mitsubishi">Mitsubishi</option>
</select><br />
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2>
Preselected and Disabled</h2>
<p>
<strong>Single select.</strong></p>
<div class="highlight highlight-javascript">
<pre><span class="nx">$</span><span class="p">(</span><span class="s1">&#39;.testselect5'</span><span class="p">).</span><span class="nx">SumoSelect</span><span class="p">();</span></pre>
</div>
<select name="somename2" class="testselect5">
<option value="volvo">Volvo</option>
<option selected="selected" value="saab">Saab</option>
<option disabled="disabled" value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select><br />
<br />
<p>
<strong>Multiple select.</strong></p>
<div class="highlight highlight-javascript">
<pre><span class="nx">$</span><span class="p">(</span><span class="s1">&#39;.testselect6'</span><span class="p">).</span><span class="nx">SumoSelect</span><span class="p">();</span></pre>
</div>
<select multiple="multiple" name="somename3" class="testselect6">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option disabled="disabled" value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
<option value="bmw">BMW</option>
<option disabled="disabled" value="porsche">Porche</option>
<option selected="selected" value="ferrari">Ferrari</option>
<option selected="selected" value="hyundai">Hyundai</option>
<option value="mitsubishi">Mitsubishi</option>
<option value="moreoptions">More options</option>
<option value="last option">this is a last option</option>
</select><br />
<p>&nbsp;</p>
<h2>
Show ok cancel in multiselect</h2>
<div class="highlight highlight-javascript">
<pre><span class="nx">$</span><span class="p">(</span><span class="s1">&#39;.testselect7'</span><span class="p">).</span><span class="nx">SumoSelect</span><span class="p">({ okCancelInMulti: <span class="auto-style4">true</span> });</span></pre>
</div>
<select multiple="multiple" name="somename4" class="testselect7">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option disabled="disabled" value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
<option value="bmw">BMW</option>
<option disabled="disabled" value="porsche">Porche</option>
<option selected="selected" value="ferrari">Ferrari</option>
<option selected="selected" value="hyundai">Hyundai</option>
<option value="mitsubishi">Mitsubishi</option>
</select><p>
&nbsp;</p>
<h2>
Clear selected options in multiselect</h2>
<div class="highlight highlight-javascript">
<pre><span class="nx">$</span><span class="p">(</span><span class="s1">&#39;.multi-clean'</span><span class="p">).</span><span class="nx">SumoSelect</span><span class="p">({ clearAll: <span class="auto-style4">true</span> });</span></pre>
</div>
<select multiple="multiple" name="somename4" class="multi-clean">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option disabled="disabled" value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
<option value="bmw">BMW</option>
<option disabled="disabled" value="porsche">Porche</option>
<option selected="selected" value="ferrari">Ferrari</option>
<option selected="selected" value="hyundai">Hyundai</option>
<option value="mitsubishi">Mitsubishi</option>
</select><p>
&nbsp;</p>
<h2>
Clear selected options in multiselect and close dropdown</h2>
<div class="highlight highlight-javascript">
<pre><span class="nx">$</span><span class="p">(</span><span class="s1">&#39;.multi-clean-close'</span><span class="p">).</span><span class="nx">SumoSelect</span><span class="p">({closeAfterClearAll: <span class="auto-style4">true</span>, clearAll: <span class="auto-style4">true</span>});</span></pre>
</div>
<select multiple="multiple" name="somename4" class="multi-clean-close">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option disabled="disabled" value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
<option value="bmw">BMW</option>
<option disabled="disabled" value="porsche">Porche</option>
<option selected="selected" value="ferrari">Ferrari</option>
<option selected="selected" value="hyundai">Hyundai</option>
<option value="mitsubishi">Mitsubishi</option>
</select><p>
</p>
<h2>
Select All</h2>
<div class="highlight highlight-javascript">
<pre><span class="nx">$</span><span class="p">(</span><span class="s1">&#39;.select1'</span><span class="p">).</span><span class="nx">SumoSelect</span><span class="p">({ okCancelInMulti: <span class="auto-style4">true</span>, selectAll: <span class="auto-style4">true</span> });</span></pre>
</div>
<select multiple="multiple" name="somename4" class="select1">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option disabled="disabled" value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
<option value="bmw">BMW</option>
<option disabled="disabled" value="porsche">Porche</option>
<option selected="selected" value="ferrari">Ferrari</option>
<option selected="selected" value="hyundai">Hyundai</option>
<option value="mitsubishi">Mitsubishi</option>
</select><p>
&nbsp;</p>
<div class="highlight highlight-javascript">
<pre><span class="nx">$</span><span class="p">(</span><span class="s1">&#39;.select2'</span><span class="p">).</span><span class="nx">SumoSelect</span><span class="p">({ selectAll: <span class="auto-style4">true</span> });</span></pre>
</div>
<select multiple="multiple" name="somename4" class="select2">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option disabled="disabled" value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
<option value="bmw">BMW</option>
<option disabled="disabled" value="porsche">Porche</option>
<option selected="selected" value="ferrari">Ferrari</option>
<option value="hyundai">Hyundai</option>
<option value="mitsubishi">Mitsubishi</option>
</select><p>
&nbsp;</p>
<h2>
Other Examples</h2>
<div class="highlight highlight-javascript">
<pre><span class="nx">$</span><span class="p">(</span><span class="s1">&#39;.testselect8'</span><span class="p">).</span><span class="nx">SumoSelect</span><span class="p">({ okCancelInMulti: <span class="auto-style4">true</span> ,
triggerChangeCombined: <span class="auto-style4">false</span>
});</span></pre>
</div>
<select multiple="multiple" onchange="alert('this is a individual item change')" name="somename5" class="testselect8">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option disabled="disabled" value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
<option value="bmw">BMW</option>
<option disabled="disabled" value="porsche">Porche</option>
<option selected="selected" value="ferrari">Ferrari</option>
<option selected="selected" value="hyundai">Hyundai</option>
<option value="mitsubishi">Mitsubishi</option>
</select><br />
<br />
<br />
Try this one on a mobile.<div class="highlight highlight-javascript">
<pre><span class="nx">$</span><span class="p">(</span><span class="s1">&#39;.testselect9'</span><span class="p">).</span><span class="nx">SumoSelect</span><span class="p">({ okCancelInMulti: <span class="auto-style4">true</span> ,
triggerChangeCombined: <span class="auto-style4">true</span>,
forceCustomRendering: <span class="auto-style4">true</span>
});</span></pre>
</div>
<select multiple="multiple" onchange="alert('this is a combined item change')" name="somename6" class="testselect9">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option disabled="disabled" value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
<option value="bmw">BMW</option>
<option disabled="disabled" value="porsche">Porche</option>
<option selected="selected" value="ferrari">Ferrari</option>
<option selected="selected" value="hyundai">Hyundai</option>
<option value="mitsubishi">Mitsubishi</option>
</select><p>&nbsp;</p>
<p>&nbsp;</p>
Live actions on select.
<table class="auto-style5">
<tr>
<td class="auto-style6">
<ul><li>
<input id="Button1" type="button" value="Attach SumoSelect" onclick="$('.testselect10').SumoSelect();" />
</li>
<li>
<input id="Button2" type="button" value="Detach SumoSelect" onclick="$('.testselect10')[0].sumo.unload();" />
</li>
<li>
<input id="Button3" type="button" value="Add item at index 1" onclick="$('.testselect10')[0].sumo.add('New Item',1);" />
</li>
<li>
<input id="Button4" type="button" value="Remove item at index 1" onclick="$('.testselect10')[0].sumo.remove(1);" />
</li>
<li>
<input id="Button5" type="button" value="Select item at index 1" onclick="$('.testselect10')[0].sumo.selectItem(1);" />
</li>
<li>
<input id="Button6" type="button" value="UnSelect item at index 1" onclick="$('.testselect10')[0].sumo.unSelectItem(1);" />
</li>
<li>
<input id="Button7" type="button" value="Disable item at index 1" onclick="$('.testselect10')[0].sumo.disableItem(1);" />
</li>
<li>
<input id="Button8" type="button" value="Enable item at index 1" onclick="$('.testselect10')[0].sumo.enableItem(1);" />
</li>
<li>
<input type="button" value="Disable sumoselect" onclick="$('.testselect10')[0].sumo.disable();" />
</li>
<li>
<input type="button" value="Enable sumoselect" onclick="$('.testselect10')[0].sumo.enable();" />
</li>
<li>
<input type="button" value="Reload sumoselect" onclick="$('.testselect10')[0].sumo.reload();" />
</li>
</ul>
</td>
<td>
<select style="width:200px;" multiple="multiple" name="somename10" class="testselect10">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option disabled="disabled" value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
<option value="bmw">BMW</option>
<option disabled="disabled" value="porsche">Porche</option>
<option selected="selected" value="ferrari">Ferrari</option>
<option selected="selected" value="hyundai">Hyundai</option>
<option value="mitsubishi">Mitsubishi</option>
</select></td>
</tr>
</table>
<br />
<br />
<br />
<br />
<h2>
<a name="license" class="anchor" href="#license"><span class="octicon octicon-link"></span></a>License</h2>
<p>Copyright (c) 2014 Hemant Negi Licensed under the MIT license.</p>
&nbsp;</section>
<aside id="sidebar">
<a href="https://github.com/HemantNegi/jquery.sumoselect/zipball/master" class="button">
<small>Download</small>
.zip file
</a>
<a href="https://github.com/HemantNegi/jquery.sumoselect/tarball/master" class="button">
<small>Download</small>
.tar.gz file
</a>
<p class="repo-owner"><a href="https://github.com/HemantNegi/jquery.sumoselect"></a> is maintained by <a href="https://github.com/HemantNegi">HemantNegi</a>.</p>
<p>This page was generated by <a href="https://pages.github.com">GitHub Pages</a> using the Architect theme by <a href="https://twitter.com/jasonlong">Jason Long</a>.</p>
<p>Visit my Websites<br>
@<a href="http://www.techstricks.com/" class="intro">Tech blog - techstricks.com</a><br>
</p>
<p></p>
<!-- hemant -->
</aside>
</div>
</div>
</body>
</html>

11
odoo_website_helpdesk/static/src/cdn/gpr-hack.js

@ -0,0 +1,11 @@
const fs = require('fs');
const path = require('path');
const pkg = require('./package.json');
pkg.name = '@hemantnegi/jquery.sumoselect';
// Update package.json with the udpated name
fs.writeFileSync(
path.join(__dirname, './package.json'),
JSON.stringify(pkg, null, 2),
);

42
odoo_website_helpdesk/static/src/cdn/jquery.sumoselect.jquery.json

@ -0,0 +1,42 @@
{
"name": "SumoSelect",
"version": "3.0.3",
"title": "jQuery SumoSelect",
"description": "SumoSelect is a jquery plugin which beautifully renders a single or multiple HTML select element. it can be used for any device e.g for a android device the select will open the default android select popup and vice versa for other devices, and also if it fails to identify the device then it works according to screen resolution which results a select to open in a popup fashion ( like it happens on chrome on android ). its fully customizable and have many other features. ",
"keywords": [
"jquery",
"select",
"multiselect",
"multiple",
"Android",
"IOS",
"Iphone",
"Ipad",
"Windows",
"cross-browser",
"cross-device",
"popup",
"disable",
"selected",
"placeholder"
],
"homepage": "https://github.com/HemantNegi/jquery.sumoselect",
"author": {
"name": "Hemant Negi",
"url": "https://sqeets.com/"
},
"repository": {
"type": "git",
"url": "https://github.com/HemantNegi/jquery.sumoselect.git"
},
"bugs": "https://github.com/HemantNegi/jquery.sumoselect/issues",
"licenses": [
{
"type": "MIT",
"url": "http://www.opensource.org/licenses/MIT"
}
],
"dependencies": {
"jquery": ">=1.6"
}
}

969
odoo_website_helpdesk/static/src/cdn/jquery.sumoselect.js

@ -0,0 +1,969 @@
/*global jQuery, define, module, require*/
/*!
* jquery.sumoselect
* http://hemantnegi.github.io/jquery.sumoselect
* 2016-12-12
*
* Copyright 2015 Hemant Negi
* Email : hemant.frnz@gmail.com
* Compressor http://refresh-sf.com/
*/
(function (factory) {
'use strict';
if (typeof define === 'function' && define.amd) {
define(['jquery'], factory);
} else if (typeof exports !== 'undefined') {
module.exports = factory(require('jquery'));
} else {
factory(jQuery);
}
})(($) => {
'namespace sumo';
$.fn.SumoSelect = function (options) {
// Extra check for IE compatibility
const dispatchEvent = (target, eventName) => {
let event = null;
if (typeof (Event) === 'function') {
event = new Event(eventName, {
bubbles: true
});
} else {
event = document.createEvent('Event');
event.initEvent(eventName, true, true);
}
target.dispatchEvent(event);
};
// missing forEach on NodeList for IE11
if (window.NodeList && !NodeList.prototype.forEach) {
NodeList.prototype.forEach = Array.prototype.forEach;
}
// This is the easiest way to have default options.
const defaultOptions = {
placeholder: 'Select Here', // Dont change it here.
csvDispCount: 3, // display no. of items in multiselect. 0 to display all.
captionFormat: '{0} Selected', // format of caption text. you can set your locale.
captionFormatAllSelected: '{0} all selected!', // format of caption text when all elements are selected. set null to use captionFormat. It will not work if there are disabled elements in select.
floatWidth: 400, // Screen width of device at which the list is rendered in floating popup fashion.
forceCustomRendering: false, // force the custom modal on all devices below floatWidth resolution.
nativeOnDevice: ['Android', 'BlackBerry', 'iPhone', 'iPad', 'iPod', 'Opera Mini', 'IEMobile', 'Silk'], //
outputAsCSV: false, // true to POST data as csv ( false for Html control array ie. default select )
csvSepChar: ',', // separation char in csv mode
okCancelInMulti: false, // display ok cancel buttons in desktop mode multiselect also.
isClickAwayOk: false, // for okCancelInMulti=true. sets whether click outside will trigger Ok or Cancel (default is cancel).
triggerChangeCombined: true, // im multi select mode whether to trigger change event on individual selection or combined selection.
selectAll: false, // to display select all button in multiselect mode.|| also select all will not be available on mobile devices.
selectAllPartialCheck: true, // Display a disabled checkbox in multiselect mode when all the items are not selected.
search: false, // to display input for filtering content. selectAlltext will be input text placeholder
searchText: 'Search...', // placeholder for search input
searchFn(haystack, needle) { // search function
return haystack.toLowerCase().indexOf(needle.toLowerCase()) < 0;
},
noMatch: 'No matches for "{0}"',
prefix: '', // some prefix usually the field name. eg. '<b>Hello</b>'
locale: ['OK', 'Cancel', 'Select All', 'Clear all'], // all text that is used. don't change the index.
up: false, // set true to open upside.
showTitle: true, // set to false to prevent title (tooltip) from appearing
clearAll: false, // im multi select - clear all checked options
closeAfterClearAll: false, // im multi select - close select after clear
max: null, // Maximum number of options selected (when multiple)
// eslint-disable-next-line no-unused-vars
renderLi: (li, _originalOption) => li // Custom <li> item renderer
};
const ret = this.each(function () {
const selObj = this; // the original select object.
if (this.sumo || !$(this).is('select')) return; //already initialized
const settings = $.extend({}, defaultOptions, options, $(this).data());
this.sumo = {
E: $(selObj), //the jquery object of original select element.
is_multi: $(selObj).attr('multiple'), //if its a multiple select
select: '',
caption: '',
placeholder: '',
optDiv: '',
CaptionCont: '',
ul: '',
is_floating: false,
is_opened: false,
//backdrop: '',
mob: false, // if to open device default select
Pstate: [],
lastUnselected: null,
selectedCount: 0,
createElems() {
const O = this;
const selectedOptions = O.E.find('option:checked');
O.E.wrap('<div class="SumoSelect" tabindex="0" role="button" aria-expanded="false">');
selectedOptions.each((_, selectedOption) => { // Fix for IE resetting index to 0 when -1
selectedOption.selected = true;
});
O.select = O.E.parent();
O.caption = $('<span>');
O.CaptionCont = $(`<p class="CaptionCont SelectBox ${O.E.attr('class')}" ><label><i></i></label></p>`)
.attr('style', O.E.attr('style'))
.prepend(O.caption);
O.select.append(O.CaptionCont);
// default turn off if no multiselect
if (!O.is_multi) settings.okCancelInMulti = false;
if (O.E.attr('disabled'))
O.select.addClass('disabled').removeAttr('tabindex');
//if output as csv and is a multiselect.
if (settings.outputAsCSV && O.is_multi && O.E.attr('name')) {
//create a hidden field to store csv value.
O.select.append($('<input class="HEMANT123" type="hidden" />').attr('name', O.E.attr('name')).val(O.getSelStr()));
// so it can not post the original select.
O.E.removeAttr('name');
}
//break for mobile rendring.. if forceCustomRendering is false
if (O.isMobile() && !settings.forceCustomRendering) {
O.setNativeMobile();
return;
}
// if there is a name attr in select add a class to container div
if (O.E.attr('name')) O.select.addClass(`sumo_${O.E.attr('name').replace(/\[\]/, '')}`);
//hide original select
O.E.addClass('SumoUnder').attr('tabindex', '-1');
//## Creating the list...
O.optDiv = $(`<div class="optWrapper ${settings.up ? 'up' : ''}">`);
//branch for floating list in low res devices.
O.floatingList();
//Creating the markup for the available options
O.ul = $('<ul class="options">');
O.optDiv.append(O.ul);
// Select all functionality
if (settings.clearAll && O.is_multi) O.ClearAll();
if (settings.selectAll && O.is_multi && !settings.max) O.SelAll();
// search functionality
if (settings.search) O.Search();
O.ul.append(O.prepItems(O.E.children()));
//if multiple then add the class multiple and add OK / CANCEL button
if (O.is_multi) O.multiSelelect();
O.select.append(O.optDiv);
O._handleMax();
O.basicEvents();
O.selAllState();
},
prepItems(opts, d) {
const lis = [], O = this;
$(opts).each((i, opt) => { // parsing options to li
const $opt = $(opt);
lis.push($opt.is('optgroup') ?
$(`<li class="group ${opt.disabled ? 'disabled' : ''}"><label></label><ul></ul></li>`)
.find('label')
.text($opt.attr('label'))
.end()
.find('ul')
.append(O.prepItems($opt.children(), opt.disabled))
.end()
:
O.createLi($opt, d)
);
});
return lis;
},
//## Creates a LI element from a given option and binds events to it
//## returns the jquery instance of li (not inserted in dom)
createLi(opt, d) {
const O = this;
if (!opt.attr('value')) opt.attr('value', opt.val());
const li = $(`<li class="opt"><label>${opt.html()}</label></li>`);
li.data('opt', opt); // store a direct reference to option.
opt.data('li', li); // store a direct reference to list item.
if (O.is_multi) li.prepend('<span><i></i></span>');
if (opt[0].disabled || d)
li.addClass('disabled');
O.onOptClick(li);
if (opt[0].selected) {
li.addClass('selected');
O.selectedCount++;
}
if (opt.attr('class'))
li.addClass(opt.attr('class'));
if (opt.attr('title'))
li.attr('title', opt.attr('title'));
return settings.renderLi(li, opt);
},
//## Returns the selected items as string in a Multiselect.
getSelStr() {
// get the pre selected items.
const sopt = [];
this.E.find('option:checked').each(function () { sopt.push($(this).val()); });
return sopt.join(settings.csvSepChar);
},
//## THOSE OK/CANCEL BUTTONS ON MULTIPLE SELECT.
multiSelelect() {
const O = this;
O.optDiv.addClass('multiple');
O.okbtn = $('<p tabindex="0" class="btnOk"></p>').click(() => {
//if combined change event is set.
O._okbtn();
O.hideOpts();
});
[O.okbtn[0].innerText] = settings.locale;
O.cancelBtn = $('<p tabindex="0" class="btnCancel"></p>').click(() => {
O._cnbtn();
O.hideOpts();
});
[, O.cancelBtn[0].innerText] = settings.locale;
const btns = O.okbtn.add(O.cancelBtn);
O.optDiv.append($('<div class="MultiControls">').append(btns));
// handling keyboard navigation on ok cancel buttons.
btns.on('keydown.sumo', function (e) {
const el = $(this);
switch (e.which) {
case 32: // space
case 13: // enter
el.trigger('click');
break;
case 9: //tab
if (el.hasClass('btnOk')) return;
break;
case 27: // esc
O._cnbtn();
O.hideOpts();
return;
default:
break;
}
e.stopPropagation();
e.preventDefault();
});
},
_okbtn() {
const O = this;
let cg = 0;
//if combined change event is set.
if (settings.triggerChangeCombined) {
//check for a change in the selection.
if (O.E.find('option:checked').length !== O.Pstate.length) {
cg = 1;
}
else {
O.E.find('option').each((i, e) => {
if (e.selected && O.Pstate.indexOf(i) < 0) cg = 1;
});
}
if (cg) {
O.callChange();
O.setText();
}
}
},
_cnbtn() {
const O = this;
//remove all selections
O.E.find('option:checked').each(function () { this.selected = false; });
O.optDiv.find('li.selected').removeClass('selected');
//restore selections from saved state.
for (let i = 0; i < O.Pstate.length; i++) {
O.E.find('option')[O.Pstate[i]].selected = true;
O.ul.find('li.opt').eq(O.Pstate[i]).addClass('selected');
}
O.setText();
O.selAllState();
},
_handleMax() {
// Disable options if max reached
if (settings.max) {
if (this.selectedCount >= +settings.max) {
this.optDiv.find('li.opt').not('.hidden').each((ix, e) => {
if (!$(e).hasClass('selected')) {
$(e).addClass('temporary-disabled disabled');
}
});
} else {
// Enable options back
this.optDiv.find('li.opt').not('.hidden').each((ix, e) => {
if ($(e).hasClass('temporary-disabled')) {
$(e).removeClass('temporary-disabled disabled');
}
});
}
}
},
ClearAll () {
const O = this;
if (!O.is_multi) return;
O.selAll = $('<p class="reset-all"><span><i></i></span><label></label></p>');
[, , , O.selAll.find('label')[0].innerText] = settings.locale;
O.optDiv.addClass('resetAll');
O.selAll.on('click', () => {
O.selAll.removeClass('selected');
O.toggSelAll(false, 1);
if (settings.closeAfterClearAll) {
O.hideOpts();
}
});
O.optDiv.prepend(O.selAll);
},
SelAll() {
const O = this;
if (!O.is_multi) return;
O.selAll = $('<p class="select-all"><span><i></i></span><label></label></p>');
[, , O.selAll.find('label')[0].innerText] = settings.locale;
O.optDiv.addClass('selall');
O.selAll.on('click', () => {
O.selAll.toggleClass('selected');
O.toggSelAll(O.selAll.hasClass('selected'), 1);
O.selAllState();
});
O.optDiv.prepend(O.selAll);
},
// search module (can be removed if not required.)
Search() {
const O = this,
cc = O.CaptionCont.addClass('search'),
P = $('<p class="no-match">'),
fn = (options.searchFn && typeof options.searchFn === 'function') ? options.searchFn : settings.searchFn;
O.ftxt = $('<input type="text" class="search-txt" value="" autocomplete="off">')
.on('click', (e) => {
e.stopPropagation();
});
O.ftxt[0].placeholder = settings.searchText;
cc.append(O.ftxt);
O.optDiv.children('ul').after(P);
O.ftxt.on('keyup.sumo', () => {
const hid = O.optDiv.find('ul.options li.opt').each((ix, e) => {
const el = $(e),
{ 0: opt } = el.data('opt');
opt.hidden = fn(el.text(), O.ftxt.val(), el);
el.toggleClass('hidden', opt.hidden);
}).not('.hidden');
// Hide opt-groups with no options matched
O.optDiv[0].querySelectorAll('li.group').forEach(optGroup => {
if (optGroup.querySelector('li:not(.hidden)')) {
optGroup.classList.remove('hidden');
} else {
optGroup.classList.add('hidden');
}
});
P.html(settings.noMatch.replace(/\{0\}/g, '<em></em>')).toggle(!hid.length);
P.find('em').text(O.ftxt.val());
O.selAllState();
});
},
selAllState() {
const O = this;
if (settings.selectAll && O.is_multi) {
let sc = 0, vc = 0;
O.optDiv.find('li.opt:not(.disabled):not(.hidden)').each((ix, e) => {
if ($(e).hasClass('selected')) sc++;
vc++;
});
//select all checkbox state change.
if (sc === vc) O.selAll.removeClass('partial').addClass('selected');
else if (sc === 0) O.selAll.removeClass('selected partial');
else {
if(settings.selectAllPartialCheck) {
O.selAll.addClass('partial')
}
O.selAll.removeClass('selected');
}
}
},
showOpts() {
const O = this;
if (O.E.attr('disabled')) return; // if select is disabled then retrun
O.E.trigger('sumo:opening', O);
O.is_opened = true;
O.select.addClass('open').attr('aria-expanded', 'true');
O.E.trigger('sumo:opened', O);
if (O.ftxt) O.ftxt.focus();
else O.select.focus();
// hide options on click outside.
$(document).on('click.sumo', (e) => {
if (!O.select.is(e.target) // if the target of the click isn't the container...
&& O.select.has(e.target).length === 0) { // ... nor a descendant of the container
if (!O.is_opened) return;
O.hideOpts();
if (settings.okCancelInMulti) {
if (settings.isClickAwayOk)
O._okbtn();
else
O._cnbtn();
}
}
});
if (O.is_floating) {
let H = O.optDiv.children('ul').outerHeight() + 2; // +2 is clear fix
if (O.is_multi) H = H + +O.optDiv.css('padding-bottom');
O.optDiv.css('height', H);
$('body').addClass('sumoStopScroll');
}
O.setPstate();
},
//maintain state when ok/cancel buttons are available storing the indexes.
setPstate() {
const O = this;
if (O.is_multi && (O.is_floating || settings.okCancelInMulti)) {
O.Pstate = [];
// assuming that find returns elements in tree order
O.E.find('option').each((i, e) => { if (e.selected) O.Pstate.push(i); });
}
},
callChange() {
this.E.get().forEach(e => {
dispatchEvent(e, 'change');
dispatchEvent(e, 'click');
});
},
hideOpts() {
const O = this;
if (O.is_opened) {
O.E.trigger('sumo:closing', O);
O.is_opened = false;
O.select.removeClass('open').attr('aria-expanded', 'false').find('ul li.sel').removeClass('sel');
O.E.trigger('sumo:closed', O);
$(document).off('click.sumo');
$('body').removeClass('sumoStopScroll');
// clear the search
if (settings.search) {
O.ftxt.val('');
O.ftxt.trigger('keyup.sumo');
}
}
},
setOnOpen() {
const O = this;
let li = O.optDiv.find('li.opt:not(.hidden)').eq(settings.search ? 0 : O.E[0].selectedIndex);
if (li.hasClass('disabled')) {
li = li.next(':not(disabled)');
if (!li.length) return;
}
O.optDiv.find('li.sel').removeClass('sel');
li.addClass('sel');
O.showOpts();
},
nav(up) {
const O = this;
let c = null, sel = O.ul.find('li.opt.sel:not(.hidden)');
const
s = O.ul.find('li.opt:not(.disabled):not(.hidden)'),
idx = s.index(sel);
if (O.is_opened && sel.length) {
if (up && idx > 0)
c = s.eq(idx - 1);
else if (!up && idx < s.length - 1 && idx > -1)
c = s.eq(idx + 1);
else return; // if no items before or after
sel.removeClass('sel');
sel = c.addClass('sel');
// setting sel item to visible view.
const { ul } = O,
st = ul.scrollTop(),
t = sel.position().top + st;
if (t >= st + ul.height() - sel.outerHeight())
ul.scrollTop(t - ul.height() + sel.outerHeight());
if (t < st)
ul.scrollTop(t);
}
else
O.setOnOpen();
},
basicEvents() {
const O = this;
O.CaptionCont.click((evt) => {
O.E.trigger('click');
if (O.is_opened) O.hideOpts(); else O.showOpts();
evt.stopPropagation();
});
O.select.on('keydown.sumo', (e) => {
switch (e.which) {
case 38: // up
O.nav(true);
break;
case 40: // down
O.nav(false);
break;
case 65: // shortcut ctrl + a to select all and ctrl + shift + a to unselect all.
if (O.is_multi && !settings.max && e.ctrlKey) {
O.toggSelAll(!e.shiftKey, 1);
break;
}
else
return;
case 32: // space
if (settings.search && O.ftxt.is(e.target)) return;
break;
case 13: // enter
if (O.is_opened)
O.optDiv.find('ul li.sel').trigger('click');
else
O.setOnOpen();
break;
case 9: //tab
if (!settings.okCancelInMulti)
O.hideOpts();
return;
case 27: // esc
if (settings.okCancelInMulti) O._cnbtn();
O.hideOpts();
return;
default:
return; // exit this handler for other keys
}
e.preventDefault(); // prevent the default action (scroll / move caret)
});
$(window).on('resize.sumo', () => {
O.floatingList();
});
},
onOptClick(li) {
const O = this;
li.click(function () {
const $li = $(this);
if ($li.hasClass('disabled')) return;
if (O.is_multi) {
$li.toggleClass('selected');
$li.data('opt')[0].selected = $li.hasClass('selected');
if ($li.data('opt')[0].selected === false) {
O.lastUnselected = $li.data('opt')[0].textContent;
O.selectedCount--;
} else {
O.selectedCount++;
}
if (settings.max) {
O._handleMax();
}
O.selAllState();
}
else {
$li.parent().find('li.selected').removeClass('selected'); //if not multiselect then remove all selections from this list
$li.toggleClass('selected');
$li.data('opt')[0].selected = true;
O.selectedCount = 1;
}
//branch for combined change event.
if (!(O.is_multi && settings.triggerChangeCombined && (O.is_floating || settings.okCancelInMulti))) {
O.setText();
O.callChange();
}
if (!O.is_multi) O.hideOpts(); //if its not a multiselect then hide on single select.
});
},
// fixed some variables that were not explicitly typed (michc)
setText() {
const O = this;
let lengthSelected = 0;
O.placeholder = "";
if (O.is_multi) {
const sels = O.E.find(':checked').not(':disabled'); //selected options.
lengthSelected = sels.length;
if (settings.csvDispCount && sels.length > settings.csvDispCount) {
if (sels.length === O.E.find('option').length && settings.captionFormatAllSelected) {
O.placeholder = settings.captionFormatAllSelected.replace(/\{0\}/g, sels.length);
}
else {
O.placeholder = settings.captionFormat.replace(/\{0\}/g, sels.length);
}
}
else {
O.placeholder = sels.toArray().map(selected => selected.innerText).join(', ');
}
}
else {
const option = O.E.find(':checked').not(':disabled');
O.placeholder = option.text();
lengthSelected = option.length;
}
let is_placeholder = false;
if (!O.placeholder) {
is_placeholder = true;
O.placeholder = O.E.attr('placeholder');
if (!O.placeholder) //if placeholder is there then set it
O.placeholder = O.E.find('option:disabled:checked').text();
}
O.select.attr('selected-count', lengthSelected);
O.select.attr('is-selected', lengthSelected ? 'true' : 'false');
O.placeholder = O.placeholder ? (`${settings.prefix} ${O.placeholder}`) : settings.placeholder;
//set display text
O.caption.text(O.placeholder);
if (settings.showTitle) O.CaptionCont.attr('title', O.placeholder);
//set the hidden field if post as csv is true.
const csvField = O.select.find('input.HEMANT123');
if (csvField.length) csvField.val(O.getSelStr());
//add class placeholder if its a placeholder text.
if (is_placeholder) O.caption.addClass('placeholder'); else O.caption.removeClass('placeholder');
return O.placeholder;
},
isMobile() {
// Adapted from http://www.detectmobilebrowsers.com
const ua = navigator.userAgent || navigator.vendor || window.opera;
// Checks for iOs, Android, Blackberry, Opera Mini, and Windows mobile devices
for (let i = 0; i < settings.nativeOnDevice.length; i++) if (ua.toString().toLowerCase().indexOf(settings.nativeOnDevice[i].toLowerCase()) > 0) return settings.nativeOnDevice[i];
return false;
},
setNativeMobile() {
const O = this;
O.E.addClass('SelectClass');//.css('height', O.select.outerHeight());
O.mob = true;
O.E.change(() => {
O.setText();
});
},
floatingList() {
const O = this;
//called on init and also on resize.
//O.is_floating = true if window width is < specified float width
O.is_floating = $(window).width() <= settings.floatWidth;
//set class isFloating
O.optDiv.toggleClass('isFloating', O.is_floating);
//remove height if not floating
if (!O.is_floating) O.optDiv.css('height', '');
//toggle class according to okCancelInMulti flag only when it is not floating
O.optDiv.toggleClass('okCancelInMulti', settings.okCancelInMulti && !O.is_floating);
},
//HELPERS FOR OUTSIDERS
// validates range of given item operations
vRange(i) {
const O = this;
const opts = O.E.find('option');
if (opts.length <= i || i < 0) throw new Error("index out of bounds");
return O;
},
//toggles selection on c as boolean.
toggSel(c, i) {
const O = this;
let opt = null;
if (typeof (i) === "number") {
O.vRange(i);
opt = O.E.find('option')[i];
}
else {
opt = O.E.find(`option[value="${i}"]`)[0] || 0;
}
if (!opt || opt.disabled)
return;
if (opt.selected !== c) {
if ((settings.max && !opt.selected && O.selectedCount < settings.max) || opt.selected || (!settings.max && !opt.selected)) {
opt.selected = c;
if (!O.mob) $(opt).data('li').toggleClass('selected', c);
O.callChange();
O.setPstate();
O.setText();
O.selAllState();
}
}
},
//toggles disabled on c as boolean.
toggDis(c, i) {
const O = this.vRange(i);
O.E.find('option')[i].disabled = c;
if (c) O.E.find('option')[i].selected = false;
if (!O.mob) O.optDiv.find('ul.options li.opt').eq(i).toggleClass('disabled', c).removeClass('selected');
O.setText();
},
// toggle disable/enable on complete select control
toggSumo(val) {
const O = this;
O.enabled = val;
O.select.toggleClass('disabled', val);
if (val) {
O.E.attr('disabled', 'disabled');
O.select.removeAttr('tabindex');
}
else {
O.E.removeAttr('disabled');
O.select.attr('tabindex', '0');
}
return O;
},
// toggles all option on c as boolean.
// set direct=false/0 bypasses okCancelInMulti behaviour.
toggSelAll(c, direct) {
const O = this;
const cloneOriginalEvents = $.extend(true, {}, $._data(O.E.get(0), "events")); // clone original select elements events
O.E.off(); // unbind original select elements events because we do not want the following clicks to trigger change on it
if (O.is_multi) {
// Select all
if (c) {
O.E.find('option').toArray().filter((option) => !option.selected && !option.disabled && option.style.display !== 'none').forEach(option => {
if (!$(option).data('li').hasClass('hidden')) {
option.selected = true;
$(option).data('li').toggleClass('selected', true);
}
});
} else {
// Unselect all
O.E.find('option').toArray().filter((option) => option.selected && !option.disabled && option.style.display !== 'none').forEach(option => {
if (!$(option).data('li').hasClass('hidden')) {
option.selected = false;
$(option).data('li').toggleClass('selected', false);
}
});
}
} else {
if (!c) O.E[0].selectedIndex = -1;
else console.warn('You called `SelectAll` on a non-multiple select');
}
// rebind original select elements events
$.each(cloneOriginalEvents, (_, e) => {
$.each(e, (__, ev) => {
O.E.on(ev.type, ev.handler);
});
});
if ((O.is_multi && !settings.okCancelInMulti) || !O.is_multi) {
O.callChange(); // call change on original select element
O.setText();
}
if (!direct) {
if (!O.mob && O.selAll) O.selAll.removeClass('partial').toggleClass('selected', !!c);
O.setText();
O.setPstate();
}
},
/* outside accessibility options
which can be accessed from the element instance.
*/
reload() {
const elm = this.unload();
return $(elm).SumoSelect(settings);
},
unload() {
const O = this;
O.select.before(O.E);
O.E.show();
O.E[0].classList.remove('SumoUnder', 'SelectClass');
if (settings.outputAsCSV && O.is_multi && O.select.find('input.HEMANT123').length) {
O.E.attr('name', O.select.find('input.HEMANT123').attr('name')); // restore the name;
}
O.select.remove();
delete selObj.sumo;
O.E.trigger('sumo:unloaded', O);
return selObj;
},
//## add a new option to select at a given index.
add(val, txt, i, attr) {
if (typeof val === "undefined") throw new Error("No value to add");
const O = this;
const opts = O.E.find('option');
const value = val;
let
text = txt,
index = i;
if (typeof txt === "number") { // .add('xxx', 2) shorthand
index = txt;
text = val;
} else if (typeof txt === "undefined") { // .add('xxx') shorthand
text = val;
}
const opt = $("<option></option>").val(value).html(text);
if (attr && typeof attr === "object") {
$.each(attr, (j, v) => {
opt.attr(j, v);
});
}
if (opts.length < index) throw new Error("index out of bounds");
if (typeof index === "undefined" || opts.length === index) { // add it to the last if given index is last no or no index provides.
O.E.append(opt);
if (!O.mob) O.ul.append(O.createLi(opt));
}
else {
opts.eq(index).before(opt);
if (!O.mob) O.ul.find('li.opt').eq(index).before(O.createLi(opt));
}
return selObj;
},
//## removes an item at a given index.
remove(i) {
const O = this.vRange(i);
O.E.find('option').eq(i).remove();
if (!O.mob) O.optDiv.find('ul.options li.opt').eq(i).remove();
O.setText();
},
// removes all but the selected one
removeAll() {
const O = this;
const optionList = O.E.find('option');
for (let x = (optionList.length - 1); x >= 0; x--) {
if (optionList[x].selected !== true) {
O.remove(x);
}
}
},
find(val) {
const O = this;
const optionList = O.E.find('option');
for (const x in optionList) {
if (optionList[x].value === val) {
return +x;
}
}
return -1;
},
//## Select an item at a given index.
selectItem(i) { this.toggSel(true, i); },
//## UnSelect an iten at a given index.
unSelectItem(i) { this.toggSel(false, i); },
//## Select all items of the select.
selectAll() { this.toggSelAll(true); },
//## UnSelect all items of the select.
unSelectAll() { this.toggSelAll(false); },
//## Disable an iten at a given index.
disableItem(i) { this.toggDis(true, i); },
//## Removes disabled an iten at a given index.
enableItem(i) { this.toggDis(false, i); },
//## New simple methods as getter and setter are not working fine in ie8-
//## variable to check state of control if enabled or disabled.
enabled: true,
//## Enables the control
enable() { return this.toggSumo(false); },
//## Disables the control
disable() { return this.toggSumo(true); },
init() {
const O = this;
O.createElems();
O.setText();
O.E.trigger('sumo:initialized', O);
return O;
}
};
selObj.sumo.init();
});
return ret.length === 1 ? ret[0] : ret;
};
});

102
odoo_website_helpdesk/static/src/cdn/jquery.sumoselect.min.js

@ -0,0 +1,102 @@
"use strict";function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}function _slicedToArray(a,b){return _arrayWithHoles(a)||_iterableToArrayLimit(a,b)||_unsupportedIterableToArray(a,b)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(a,b){if(a){if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);return"Object"===c&&a.constructor&&(c=a.constructor.name),"Map"===c||"Set"===c?Array.from(a):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?_arrayLikeToArray(a,b):void 0}}function _arrayLikeToArray(a,b){(null==b||b>a.length)&&(b=a.length);for(var c=0,d=Array(b);c<b;c++)d[c]=a[c];return d}function _iterableToArrayLimit(a,b){var c=null==a?null:"undefined"!=typeof Symbol&&a[Symbol.iterator]||a["@@iterator"];if(null!=c){var d,e,f=[],g=!0,h=!1;try{for(c=c.call(a);!(g=(d=c.next()).done)&&(f.push(d.value),!(b&&f.length===b));g=!0);}catch(a){h=!0,e=a}finally{try{g||null==c["return"]||c["return"]()}finally{if(h)throw e}}return f}}function _arrayWithHoles(a){if(Array.isArray(a))return a}/*global jQuery, define, module, require*/ /*!
* jquery.sumoselect
* http://hemantnegi.github.io/jquery.sumoselect
* 2016-12-12
*
* Copyright 2015 Hemant Negi
* Email : hemant.frnz@gmail.com
* Compressor http://refresh-sf.com/
*/(function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):"undefined"==typeof exports?a(jQuery):module.exports=a(require("jquery"))})(function(a){"namespace sumo";a.fn.SumoSelect=function(b){// Extra check for IE compatibility
var c=function(a,b){var c=null;"function"==typeof Event?c=new Event(b,{bubbles:!0}):(c=document.createEvent("Event"),c.initEvent(b,!0,!0)),a.dispatchEvent(c)};// missing forEach on NodeList for IE11
window.NodeList&&!NodeList.prototype.forEach&&(NodeList.prototype.forEach=Array.prototype.forEach);// This is the easiest way to have default options.
var d={placeholder:"Select Here",// Dont change it here.
csvDispCount:3,// display no. of items in multiselect. 0 to display all.
captionFormat:"{0} Selected",// format of caption text. you can set your locale.
captionFormatAllSelected:"{0} all selected!",// format of caption text when all elements are selected. set null to use captionFormat. It will not work if there are disabled elements in select.
floatWidth:400,// Screen width of device at which the list is rendered in floating popup fashion.
forceCustomRendering:!1,// force the custom modal on all devices below floatWidth resolution.
nativeOnDevice:["Android","BlackBerry","iPhone","iPad","iPod","Opera Mini","IEMobile","Silk"],//
outputAsCSV:!1,// true to POST data as csv ( false for Html control array ie. default select )
csvSepChar:",",// separation char in csv mode
okCancelInMulti:!1,// display ok cancel buttons in desktop mode multiselect also.
isClickAwayOk:!1,// for okCancelInMulti=true. sets whether click outside will trigger Ok or Cancel (default is cancel).
triggerChangeCombined:!0,// im multi select mode whether to trigger change event on individual selection or combined selection.
selectAll:!1,// to display select all button in multiselect mode.|| also select all will not be available on mobile devices.
selectAllPartialCheck:!0,// Display a disabled checkbox in multiselect mode when all the items are not selected.
search:!1,// to display input for filtering content. selectAlltext will be input text placeholder
searchText:"Search...",// placeholder for search input
searchFn:function searchFn(a,b){// search function
return 0>a.toLowerCase().indexOf(b.toLowerCase())},noMatch:"No matches for \"{0}\"",prefix:"",// some prefix usually the field name. eg. '<b>Hello</b>'
locale:["OK","Cancel","Select All","Clear all"],// all text that is used. don't change the index.
up:!1,// set true to open upside.
showTitle:!0,// set to false to prevent title (tooltip) from appearing
clearAll:!1,// im multi select - clear all checked options
closeAfterClearAll:!1,// im multi select - close select after clear
max:null,// Maximum number of options selected (when multiple)
// eslint-disable-next-line no-unused-vars
renderLi:function renderLi(a){return a}// Custom <li> item renderer
},e=this.each(function(){var e=this;// the original select object.
if(!this.sumo&&a(this).is("select")){//already initialized
var f=a.extend({},d,b,a(this).data());this.sumo={E:a(e),//the jquery object of original select element.
is_multi:a(e).attr("multiple"),//if its a multiple select
select:"",caption:"",placeholder:"",optDiv:"",CaptionCont:"",ul:"",is_floating:!1,is_opened:!1,//backdrop: '',
mob:!1,// if to open device default select
Pstate:[],lastUnselected:null,selectedCount:0,createElems:function createElems(){var b=this,c=b.E.find("option:checked");//break for mobile rendring.. if forceCustomRendering is false
return b.E.wrap("<div class=\"SumoSelect\" tabindex=\"0\" role=\"button\" aria-expanded=\"false\">"),c.each(function(a,b){b.selected=!0}),b.select=b.E.parent(),b.caption=a("<span>"),b.CaptionCont=a("<p class=\"CaptionCont SelectBox ".concat(b.E.attr("class"),"\" ><label><i></i></label></p>")).attr("style",b.E.attr("style")).prepend(b.caption),b.select.append(b.CaptionCont),b.is_multi||(f.okCancelInMulti=!1),b.E.attr("disabled")&&b.select.addClass("disabled").removeAttr("tabindex"),f.outputAsCSV&&b.is_multi&&b.E.attr("name")&&(b.select.append(a("<input class=\"HEMANT123\" type=\"hidden\" />").attr("name",b.E.attr("name")).val(b.getSelStr())),b.E.removeAttr("name")),b.isMobile()&&!f.forceCustomRendering?void b.setNativeMobile():void(//hide original select
//## Creating the list...
//branch for floating list in low res devices.
//Creating the markup for the available options
b.E.attr("name")&&b.select.addClass("sumo_".concat(b.E.attr("name").replace(/\[\]/,""))),b.E.addClass("SumoUnder").attr("tabindex","-1"),b.optDiv=a("<div class=\"optWrapper ".concat(f.up?"up":"","\">")),b.floatingList(),b.ul=a("<ul class=\"options\">"),b.optDiv.append(b.ul),f.clearAll&&b.is_multi&&b.ClearAll(),f.selectAll&&b.is_multi&&!f.max&&b.SelAll(),f.search&&b.Search(),b.ul.append(b.prepItems(b.E.children())),b.is_multi&&b.multiSelelect(),b.select.append(b.optDiv),b._handleMax(),b.basicEvents(),b.selAllState());// if there is a name attr in select add a class to container div
},prepItems:function prepItems(b,c){var d=[],e=this;return a(b).each(function(b,f){// parsing options to li
var g=a(f);d.push(g.is("optgroup")?a("<li class=\"group ".concat(f.disabled?"disabled":"","\"><label></label><ul></ul></li>")).find("label").text(g.attr("label")).end().find("ul").append(e.prepItems(g.children(),f.disabled)).end():e.createLi(g,c))}),d},//## Creates a LI element from a given option and binds events to it
//## returns the jquery instance of li (not inserted in dom)
createLi:function createLi(b,c){var d=this;b.attr("value")||b.attr("value",b.val());var e=a("<li class=\"opt\"><label>".concat(b.html(),"</label></li>"));return e.data("opt",b),b.data("li",e),d.is_multi&&e.prepend("<span><i></i></span>"),(b[0].disabled||c)&&e.addClass("disabled"),d.onOptClick(e),b[0].selected&&(e.addClass("selected"),d.selectedCount++),b.attr("class")&&e.addClass(b.attr("class")),b.attr("title")&&e.attr("title",b.attr("title")),f.renderLi(e,b)},//## Returns the selected items as string in a Multiselect.
getSelStr:function getSelStr(){// get the pre selected items.
var b=[];return this.E.find("option:checked").each(function(){b.push(a(this).val())}),b.join(f.csvSepChar)},//## THOSE OK/CANCEL BUTTONS ON MULTIPLE SELECT.
multiSelelect:function multiSelelect(){var b=this;b.optDiv.addClass("multiple"),b.okbtn=a("<p tabindex=\"0\" class=\"btnOk\"></p>").click(function(){b._okbtn(),b.hideOpts()});var c=_slicedToArray(f.locale,1);b.okbtn[0].innerText=c[0],b.cancelBtn=a("<p tabindex=\"0\" class=\"btnCancel\"></p>").click(function(){b._cnbtn(),b.hideOpts()});var d=_slicedToArray(f.locale,2);b.cancelBtn[0].innerText=d[1];var e=b.okbtn.add(b.cancelBtn);b.optDiv.append(a("<div class=\"MultiControls\">").append(e)),e.on("keydown.sumo",function(c){var d=a(this);switch(c.which){case 32:// space
case 13:d.trigger("click");break;case 9://tab
if(d.hasClass("btnOk"))return;break;case 27:return b._cnbtn(),void b.hideOpts();default:}c.stopPropagation(),c.preventDefault()})},_okbtn:function _okbtn(){var a=this,b=0;f.triggerChangeCombined&&(a.E.find("option:checked").length===a.Pstate.length?a.E.find("option").each(function(c,d){d.selected&&0>a.Pstate.indexOf(c)&&(b=1)}):b=1,b&&(a.callChange(),a.setText()))},_cnbtn:function _cnbtn(){var a=this;//remove all selections
a.E.find("option:checked").each(function(){this.selected=!1}),a.optDiv.find("li.selected").removeClass("selected");//restore selections from saved state.
for(var b=0;b<a.Pstate.length;b++)a.E.find("option")[a.Pstate[b]].selected=!0,a.ul.find("li.opt").eq(a.Pstate[b]).addClass("selected");a.setText(),a.selAllState()},_handleMax:function _handleMax(){f.max&&(this.selectedCount>=+f.max?this.optDiv.find("li.opt").not(".hidden").each(function(b,c){a(c).hasClass("selected")||a(c).addClass("temporary-disabled disabled")}):this.optDiv.find("li.opt").not(".hidden").each(function(b,c){a(c).hasClass("temporary-disabled")&&a(c).removeClass("temporary-disabled disabled")}))},ClearAll:function ClearAll(){var b=this;if(b.is_multi){b.selAll=a("<p class=\"reset-all\"><span><i></i></span><label></label></p>");var c=_slicedToArray(f.locale,4);b.selAll.find("label")[0].innerText=c[3],b.optDiv.addClass("resetAll"),b.selAll.on("click",function(){b.selAll.removeClass("selected"),b.toggSelAll(!1,1),f.closeAfterClearAll&&b.hideOpts()}),b.optDiv.prepend(b.selAll)}},SelAll:function SelAll(){var b=this;if(b.is_multi){b.selAll=a("<p class=\"select-all\"><span><i></i></span><label></label></p>");var c=_slicedToArray(f.locale,3);b.selAll.find("label")[0].innerText=c[2],b.optDiv.addClass("selall"),b.selAll.on("click",function(){b.selAll.toggleClass("selected"),b.toggSelAll(b.selAll.hasClass("selected"),1),b.selAllState()}),b.optDiv.prepend(b.selAll)}},// search module (can be removed if not required.)
Search:function Search(){var c=this,d=c.CaptionCont.addClass("search"),e=a("<p class=\"no-match\">"),g=b.searchFn&&"function"==typeof b.searchFn?b.searchFn:f.searchFn;c.ftxt=a("<input type=\"text\" class=\"search-txt\" value=\"\" autocomplete=\"off\">").on("click",function(a){a.stopPropagation()}),c.ftxt[0].placeholder=f.searchText,d.append(c.ftxt),c.optDiv.children("ul").after(e),c.ftxt.on("keyup.sumo",function(){var b=c.optDiv.find("ul.options li.opt").each(function(b,d){var e=a(d),f=e.data("opt"),h=f[0];h.hidden=g(e.text(),c.ftxt.val(),e),e.toggleClass("hidden",h.hidden)}).not(".hidden");// Hide opt-groups with no options matched
c.optDiv[0].querySelectorAll("li.group").forEach(function(a){a.querySelector("li:not(.hidden)")?a.classList.remove("hidden"):a.classList.add("hidden")}),e.html(f.noMatch.replace(/\{0\}/g,"<em></em>")).toggle(!b.length),e.find("em").text(c.ftxt.val()),c.selAllState()})},selAllState:function selAllState(){var b=this;if(f.selectAll&&b.is_multi){var c=0,d=0;b.optDiv.find("li.opt:not(.disabled):not(.hidden)").each(function(b,f){a(f).hasClass("selected")&&c++,d++}),c==d?b.selAll.removeClass("partial").addClass("selected"):0===c?b.selAll.removeClass("selected partial"):(f.selectAllPartialCheck&&b.selAll.addClass("partial"),b.selAll.removeClass("selected"))}},showOpts:function showOpts(){var b=this;if(!b.E.attr("disabled")){if(b.E.trigger("sumo:opening",b),b.is_opened=!0,b.select.addClass("open").attr("aria-expanded","true"),b.E.trigger("sumo:opened",b),b.ftxt?b.ftxt.focus():b.select.focus(),a(document).on("click.sumo",function(a){if(!b.select.is(a.target)// if the target of the click isn't the container...
&&0===b.select.has(a.target).length){// ... nor a descendant of the container
if(!b.is_opened)return;b.hideOpts(),f.okCancelInMulti&&(f.isClickAwayOk?b._okbtn():b._cnbtn())}}),b.is_floating){var c=b.optDiv.children("ul").outerHeight()+2;// +2 is clear fix
b.is_multi&&(c+=+b.optDiv.css("padding-bottom")),b.optDiv.css("height",c),a("body").addClass("sumoStopScroll")}b.setPstate()}// if select is disabled then retrun
},//maintain state when ok/cancel buttons are available storing the indexes.
setPstate:function setPstate(){var a=this;a.is_multi&&(a.is_floating||f.okCancelInMulti)&&(a.Pstate=[],a.E.find("option").each(function(b,c){c.selected&&a.Pstate.push(b)}))},callChange:function callChange(){this.E.get().forEach(function(a){c(a,"change"),c(a,"click")})},hideOpts:function hideOpts(){var b=this;b.is_opened&&(b.E.trigger("sumo:closing",b),b.is_opened=!1,b.select.removeClass("open").attr("aria-expanded","false").find("ul li.sel").removeClass("sel"),b.E.trigger("sumo:closed",b),a(document).off("click.sumo"),a("body").removeClass("sumoStopScroll"),f.search&&(b.ftxt.val(""),b.ftxt.trigger("keyup.sumo")))},setOnOpen:function setOnOpen(){var a=this,b=a.optDiv.find("li.opt:not(.hidden)").eq(f.search?0:a.E[0].selectedIndex);b.hasClass("disabled")&&(b=b.next(":not(disabled)"),!b.length)||(a.optDiv.find("li.sel").removeClass("sel"),b.addClass("sel"),a.showOpts())},nav:function nav(a){var b=this,d=null,e=b.ul.find("li.opt.sel:not(.hidden)"),f=b.ul.find("li.opt:not(.disabled):not(.hidden)"),g=f.index(e);if(b.is_opened&&e.length){if(a&&0<g)d=f.eq(g-1);else if(!a&&g<f.length-1&&-1<g)d=f.eq(g+1);else return;// if no items before or after
e.removeClass("sel"),e=d.addClass("sel");// setting sel item to visible view.
var h=b.ul,i=h.scrollTop(),j=e.position().top+i;j>=i+h.height()-e.outerHeight()&&h.scrollTop(j-h.height()+e.outerHeight()),j<i&&h.scrollTop(j)}else b.setOnOpen()},basicEvents:function basicEvents(){var b=this;b.CaptionCont.click(function(a){b.E.trigger("click"),b.is_opened?b.hideOpts():b.showOpts(),a.stopPropagation()}),b.select.on("keydown.sumo",function(a){switch(a.which){case 38:b.nav(!0);break;case 40:b.nav(!1);break;case 65:// shortcut ctrl + a to select all and ctrl + shift + a to unselect all.
if(b.is_multi&&!f.max&&a.ctrlKey){b.toggSelAll(!a.shiftKey,1);break}else return;case 32:// space
if(f.search&&b.ftxt.is(a.target))return;break;case 13:b.is_opened?b.optDiv.find("ul li.sel").trigger("click"):b.setOnOpen();break;case 9:return void(f.okCancelInMulti||b.hideOpts());case 27:return f.okCancelInMulti&&b._cnbtn(),void b.hideOpts();default:return;// exit this handler for other keys
}a.preventDefault()}),a(window).on("resize.sumo",function(){b.floatingList()})},onOptClick:function onOptClick(b){var c=this;b.click(function(){var b=a(this);b.hasClass("disabled")||(c.is_multi?(b.toggleClass("selected"),b.data("opt")[0].selected=b.hasClass("selected"),!1===b.data("opt")[0].selected?(c.lastUnselected=b.data("opt")[0].textContent,c.selectedCount--):c.selectedCount++,f.max&&c._handleMax(),c.selAllState()):(b.parent().find("li.selected").removeClass("selected"),b.toggleClass("selected"),b.data("opt")[0].selected=!0,c.selectedCount=1),!(c.is_multi&&f.triggerChangeCombined&&(c.is_floating||f.okCancelInMulti))&&(c.setText(),c.callChange()),!c.is_multi&&c.hideOpts())})},// fixed some variables that were not explicitly typed (michc)
setText:function setText(){var a=this,b=0;if(a.placeholder="",a.is_multi){var e=a.E.find(":checked").not(":disabled");//selected options.
b=e.length,a.placeholder=f.csvDispCount&&e.length>f.csvDispCount?e.length===a.E.find("option").length&&f.captionFormatAllSelected?f.captionFormatAllSelected.replace(/\{0\}/g,e.length):f.captionFormat.replace(/\{0\}/g,e.length):e.toArray().map(function(a){return a.innerText}).join(", ")}else{var g=a.E.find(":checked").not(":disabled");a.placeholder=g.text(),b=g.length}var c=!1;a.placeholder||(c=!0,a.placeholder=a.E.attr("placeholder"),!a.placeholder&&(//if placeholder is there then set it
a.placeholder=a.E.find("option:disabled:checked").text())),a.select.attr("selected-count",b),a.select.attr("is-selected",b?"true":"false"),a.placeholder=a.placeholder?"".concat(f.prefix," ").concat(a.placeholder):f.placeholder,a.caption.text(a.placeholder),f.showTitle&&a.CaptionCont.attr("title",a.placeholder);//set the hidden field if post as csv is true.
var d=a.select.find("input.HEMANT123");return d.length&&d.val(a.getSelStr()),c?a.caption.addClass("placeholder"):a.caption.removeClass("placeholder"),a.placeholder},isMobile:function isMobile(){// Adapted from http://www.detectmobilebrowsers.com
// Checks for iOs, Android, Blackberry, Opera Mini, and Windows mobile devices
for(var a=navigator.userAgent||navigator.vendor||window.opera,b=0;b<f.nativeOnDevice.length;b++)if(0<a.toString().toLowerCase().indexOf(f.nativeOnDevice[b].toLowerCase()))return f.nativeOnDevice[b];return!1},setNativeMobile:function setNativeMobile(){var a=this;a.E.addClass("SelectClass"),a.mob=!0,a.E.change(function(){a.setText()})},floatingList:function floatingList(){var b=this;//called on init and also on resize.
//O.is_floating = true if window width is < specified float width
b.is_floating=a(window).width()<=f.floatWidth,b.optDiv.toggleClass("isFloating",b.is_floating),b.is_floating||b.optDiv.css("height",""),b.optDiv.toggleClass("okCancelInMulti",f.okCancelInMulti&&!b.is_floating)},//HELPERS FOR OUTSIDERS
// validates range of given item operations
vRange:function vRange(a){var b=this,c=b.E.find("option");if(c.length<=a||0>a)throw new Error("index out of bounds");return b},//toggles selection on c as boolean.
toggSel:function toggSel(b,c){var d=this,e=null;"number"==typeof c?(d.vRange(c),e=d.E.find("option")[c]):e=d.E.find("option[value=\"".concat(c,"\"]"))[0]||0,!e||e.disabled||e.selected!==b&&(f.max&&!e.selected&&d.selectedCount<f.max||e.selected||!f.max&&!e.selected)&&(e.selected=b,!d.mob&&a(e).data("li").toggleClass("selected",b),d.callChange(),d.setPstate(),d.setText(),d.selAllState())},//toggles disabled on c as boolean.
toggDis:function toggDis(a,b){var c=this.vRange(b);c.E.find("option")[b].disabled=a,a&&(c.E.find("option")[b].selected=!1),c.mob||c.optDiv.find("ul.options li.opt").eq(b).toggleClass("disabled",a).removeClass("selected"),c.setText()},// toggle disable/enable on complete select control
toggSumo:function toggSumo(a){var b=this;return b.enabled=a,b.select.toggleClass("disabled",a),a?(b.E.attr("disabled","disabled"),b.select.removeAttr("tabindex")):(b.E.removeAttr("disabled"),b.select.attr("tabindex","0")),b},// toggles all option on c as boolean.
// set direct=false/0 bypasses okCancelInMulti behaviour.
toggSelAll:function toggSelAll(b,c){var d=this,e=a.extend(!0,{},a._data(d.E.get(0),"events"));d.E.off(),d.is_multi?b?d.E.find("option").toArray().filter(function(a){return!a.selected&&!a.disabled&&"none"!==a.style.display}).forEach(function(b){a(b).data("li").hasClass("hidden")||(b.selected=!0,a(b).data("li").toggleClass("selected",!0))}):d.E.find("option").toArray().filter(function(a){return a.selected&&!a.disabled&&"none"!==a.style.display}).forEach(function(b){a(b).data("li").hasClass("hidden")||(b.selected=!1,a(b).data("li").toggleClass("selected",!1))}):b?console.warn("You called `SelectAll` on a non-multiple select"):d.E[0].selectedIndex=-1,a.each(e,function(b,c){a.each(c,function(a,b){d.E.on(b.type,b.handler)})}),(!d.is_multi||f.okCancelInMulti)&&d.is_multi||(d.callChange(),d.setText()),c||(!d.mob&&d.selAll&&d.selAll.removeClass("partial").toggleClass("selected",!!b),d.setText(),d.setPstate())},/* outside accessibility options
which can be accessed from the element instance.
*/reload:function reload(){var b=this.unload();return a(b).SumoSelect(f)},unload:function unload(){var a=this;return a.select.before(a.E),a.E.show(),a.E[0].classList.remove("SumoUnder","SelectClass"),f.outputAsCSV&&a.is_multi&&a.select.find("input.HEMANT123").length&&a.E.attr("name",a.select.find("input.HEMANT123").attr("name")),a.select.remove(),delete e.sumo,a.E.trigger("sumo:unloaded",a),e},//## add a new option to select at a given index.
add:function add(b,c,d,f){if("undefined"==typeof b)throw new Error("No value to add");var g=this,h=g.E.find("option"),i=c,j=d;"number"==typeof c?(j=c,i=b):"undefined"==typeof c&&(i=b);var k=a("<option></option>").val(b).html(i);if(f&&"object"===_typeof(f)&&a.each(f,function(a,b){k.attr(a,b)}),h.length<j)throw new Error("index out of bounds");return"undefined"==typeof j||h.length===j?(g.E.append(k),!g.mob&&g.ul.append(g.createLi(k))):(h.eq(j).before(k),!g.mob&&g.ul.find("li.opt").eq(j).before(g.createLi(k))),e},//## removes an item at a given index.
remove:function remove(a){var b=this.vRange(a);b.E.find("option").eq(a).remove(),b.mob||b.optDiv.find("ul.options li.opt").eq(a).remove(),b.setText()},// removes all but the selected one
removeAll:function removeAll(){for(var a=this,b=a.E.find("option"),c=b.length-1;0<=c;c--)!0!==b[c].selected&&a.remove(c)},find:function find(a){var b=this,c=b.E.find("option");for(var d in c)if(c[d].value===a)return+d;return-1},//## Select an item at a given index.
selectItem:function selectItem(a){this.toggSel(!0,a)},//## UnSelect an iten at a given index.
unSelectItem:function unSelectItem(a){this.toggSel(!1,a)},//## Select all items of the select.
selectAll:function selectAll(){this.toggSelAll(!0)},//## UnSelect all items of the select.
unSelectAll:function unSelectAll(){this.toggSelAll(!1)},//## Disable an iten at a given index.
disableItem:function disableItem(a){this.toggDis(!0,a)},//## Removes disabled an iten at a given index.
enableItem:function enableItem(a){this.toggDis(!1,a)},//## New simple methods as getter and setter are not working fine in ie8-
//## variable to check state of control if enabled or disabled.
enabled:!0,//## Enables the control
enable:function enable(){return this.toggSumo(!1)},//## Disables the control
disable:function disable(){return this.toggSumo(!0)},init:function init(){var a=this;return a.createElems(),a.setText(),a.E.trigger("sumo:initialized",a),a}},e.sumo.init()}});return 1===e.length?e[0]:e}});

8965
odoo_website_helpdesk/static/src/cdn/package-lock.json

File diff suppressed because it is too large

42
odoo_website_helpdesk/static/src/cdn/package.json

@ -0,0 +1,42 @@
{
"name": "sumoselect",
"version": "3.4.8",
"description": "A jQuery plugin that progressively enhances an HTML Select Box into a Single/Multiple option dropdown list",
"main": "jquery.sumoselect.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"docs": "bash docs.bash",
"release": "npm run docs && bash release.bash"
},
"repository": {
"type": "git",
"url": "git+https://github.com/HemantNegi/jquery.sumoselect.git"
},
"keywords": [
"multiselect",
"dropdown"
],
"author": "HemantNegi",
"contributors": [
"HemantNegi",
"B2F",
"ke-an"
],
"license": "MIT",
"bugs": {
"url": "https://github.com/HemantNegi/jquery.sumoselect/issues"
},
"dependencies": {
"jquery": ">=1.6"
},
"homepage": "https://github.com/HemantNegi/jquery.sumoselect#readme",
"devDependencies": {
"@babel/cli": "^7.14.5",
"@babel/core": "^7.14.6",
"@babel/preset-env": "^7.14.5",
"babel-preset-minify": "^0.5.1",
"minify": "^7.0.2",
"shx": "^0.3.3",
"standard-version": "^9.3.0"
}
}

10
odoo_website_helpdesk/static/src/cdn/release.bash

@ -0,0 +1,10 @@
# Commit changes
git add docs/javascripts/jquery.sumoselect.min.js
git add docs/stylesheets/sumoselect.min.css
git add jquery.sumoselect.min.js
git add jquery.sumoselect.js
git add sumoselect.min.css
git diff-index --quiet HEAD || git commit -m "chore: Files minification"
# Release
standard-version

117
odoo_website_helpdesk/static/src/cdn/sumoselect.css

@ -0,0 +1,117 @@
.SumoSelect p {margin: 0;}
.SumoSelect{width: 200px;}
.SelectBox {padding: 5px 8px;}
.sumoStopScroll{overflow:hidden;}
/* Filtering style */
.SumoSelect .hidden { display:none; }
.SumoSelect .search-txt{display:none;outline:none;}
.SumoSelect .no-match{display:none;padding: 6px;}
.SumoSelect.open .search-txt{display: inline-block;position: absolute;top: 0;left: 0;width: 100%;margin: 0;padding: 5px 8px;border: none;-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;border-radius: 5px;}
.SumoSelect.open>.search>span, .SumoSelect.open>.search>label{visibility:hidden;}
/*this is applied on that hidden select. DO NOT USE display:none; or visiblity:hidden; and Do not override any of these properties. */
.SelectClass,.SumoUnder { position: absolute; top: 0; left: 0; right: 0; height: 100%; width: 100%; border: none; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter: alpha(opacity=0); -moz-opacity: 0; -khtml-opacity: 0; opacity: 0; }
.SelectClass{z-index: 1;}
.SumoSelect > .optWrapper > .options li.opt label, .SumoSelect > .CaptionCont,.SumoSelect .select-all > label { user-select: none; -o-user-select: none; -moz-user-select: none; -khtml-user-select: none; -webkit-user-select: none; }
.SumoSelect { display: inline-block; position: relative;outline:none;}
.SumoSelect:focus > .CaptionCont,.SumoSelect:hover > .CaptionCont, .SumoSelect.open > .CaptionCont {box-shadow: 0 0 2px #7799D0;border-color: #7799D0;}
.SumoSelect > .CaptionCont { position: relative; border: 1px solid #A4A4A4; min-height: 14px; background-color: #fff;border-radius:2px;margin:0;}
.SumoSelect > .CaptionCont > span { display: block; padding-right: 30px; text-overflow: ellipsis; white-space: nowrap; overflow: hidden;cursor:default;}
/*placeholder style*/
.SumoSelect > .CaptionCont > span.placeholder { color: #ccc; font-style: italic; }
.SumoSelect > .CaptionCont > label { position: absolute; top: 0; right: 0; bottom: 0; width: 30px;}
.SumoSelect > .CaptionCont > label > i { background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3wMdBhAJ/fwnjwAAAGFJREFUKM9jYBh+gBFKuzEwMKQwMDB8xaOWlYGB4T4DA0MrsuapDAwM//HgNwwMDDbYTJuGQ8MHBgYGJ1xOYGNgYJiBpuEpAwODHSF/siDZ+ISBgcGClEDqZ2Bg8B6CkQsAPRga0cpRtDEAAAAASUVORK5CYII=');
background-position: center center; width: 16px; height: 16px; display: block; position: absolute; top: 0; left: 0; right: 0; bottom: 0; margin: auto;background-repeat: no-repeat;opacity: 0.8;}
.SumoSelect > .optWrapper {display:none; z-index: 1000; top: 30px; width: 100%; position: absolute; left: 0; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; background: #fff; border: 1px solid #ddd; box-shadow: 2px 3px 3px rgba(0, 0, 0, 0.11); border-radius: 3px;overflow: hidden;}
.SumoSelect.open > .optWrapper {top:35px; display:block;}
.SumoSelect.open > .optWrapper.up {top: auto;bottom: 100%;margin-bottom: 5px;}
.SumoSelect > .optWrapper ul {list-style: none; display: block; padding: 0; margin: 0; overflow: auto;}
.SumoSelect > .optWrapper > .options { border-radius: 2px;position:relative;
/*Set the height of pop up here (only for desktop mode)*/
max-height: 250px;
/*height*/ }
.SumoSelect > .optWrapper.okCancelInMulti > .options { border-radius: 2px 2px 0 0;}
.SumoSelect > .optWrapper.selall > .options { border-radius: 0 0 2px 2px;}
.SumoSelect > .optWrapper.selall.okCancelInMulti > .options { border-radius: 0;}
.SumoSelect > .optWrapper > .options li.group.disabled > label{opacity:0.5;}
.SumoSelect > .optWrapper > .options li ul li.opt{padding-left: 22px;}
.SumoSelect > .optWrapper.multiple > .options li ul li.opt{padding-left: 50px;}
.SumoSelect > .optWrapper.isFloating > .options {max-height: 100%;box-shadow: 0 0 100px #595959;}
.SumoSelect > .optWrapper > .options li.opt { padding: 6px 6px; position: relative;border-bottom: 1px solid #f5f5f5;}
.SumoSelect > .optWrapper > .options > li.opt:first-child { border-radius: 2px 2px 0 0; }
.SumoSelect > .optWrapper.selall > .options > li.opt:first-child { border-radius:0; }
.SumoSelect > .optWrapper > .options > li.opt:last-child {border-radius: 0 0 2px 2px; border-bottom: none;}
.SumoSelect > .optWrapper.okCancelInMulti > .options > li.opt:last-child {border-radius: 0;}
.SumoSelect > .optWrapper > .options li.opt:hover { background-color: #E4E4E4; }
.SumoSelect > .optWrapper > .options li.opt.sel, .SumoSelect .select-all.sel{background-color: #a1c0e4;}
.SumoSelect > .optWrapper > .options li label { text-overflow: ellipsis; white-space: nowrap; overflow: hidden; display: block;cursor: pointer;}
.SumoSelect > .optWrapper > .options li span { display: none; }
.SumoSelect > .optWrapper > .options li.group > label {cursor: default;padding: 8px 6px;font-weight: bold;}
/*Floating styles*/
.SumoSelect > .optWrapper.isFloating { position: fixed; top: 0; left: 0; right: 0; width: 90%; bottom: 0; margin: auto; max-height: 90%; }
/*disabled state*/
.SumoSelect > .optWrapper > .options li.opt.disabled { background-color: inherit;pointer-events: none;}
.SumoSelect > .optWrapper > .options li.opt.disabled * { -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; /* IE 5-7 */ filter: alpha(opacity=50); /* Netscape */ -moz-opacity: 0.5; /* Safari 1.x */ -khtml-opacity: 0.5; /* Good browsers */ opacity: 0.5; }
/*styling for multiple select*/
.SumoSelect > .optWrapper.multiple > .options li.opt { padding-left: 35px;cursor: pointer;}
.SumoSelect > .optWrapper.multiple > .options li.opt span,
.SumoSelect .select-all > span{position:absolute;display:block;width:30px;top:0;bottom:0;margin-left:-35px;}
.SumoSelect > .optWrapper.multiple > .options li.opt span i,
.SumoSelect .select-all > span i{position: absolute;margin: auto;left: 0;right: 0;top: 0;bottom: 0;width: 14px;height: 14px;border: 1px solid #AEAEAE;border-radius: 2px;box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.15);background-color: #fff;}
.SumoSelect > .optWrapper > .MultiControls { display: none; border-top: 1px solid #ddd; background-color: #fff; box-shadow: 0 0 2px rgba(0, 0, 0, 0.13); border-radius: 0 0 3px 3px; }
.SumoSelect > .optWrapper.multiple.isFloating > .MultiControls { display: block; margin-top: 5px; position: absolute; bottom: 0; width: 100%; }
.SumoSelect > .optWrapper.multiple.okCancelInMulti > .MultiControls { display: block; }
.SumoSelect > .optWrapper.multiple.okCancelInMulti > .MultiControls > p { padding: 6px; }
.SumoSelect > .optWrapper.multiple.okCancelInMulti > .MultiControls > p:focus {box-shadow: 0 0 2px #a1c0e4;border-color: #a1c0e4;outline: none;background-color: #a1c0e4;}
.SumoSelect > .optWrapper.multiple > .MultiControls > p { display: inline-block; cursor: pointer; padding: 12px; width: 50%; box-sizing: border-box; text-align: center; }
.SumoSelect > .optWrapper.multiple > .MultiControls > p:hover { background-color: #f1f1f1; }
.SumoSelect > .optWrapper.multiple > .MultiControls > p.btnOk { border-right: 1px solid #DBDBDB; border-radius: 0 0 0 3px; }
.SumoSelect > .optWrapper.multiple > .MultiControls > p.btnCancel { border-radius: 0 0 3px 0; }
/*styling for select on popup mode*/
.SumoSelect > .optWrapper.isFloating > .options li.opt { padding: 12px 6px; }
/*styling for only multiple select on popup mode*/
.SumoSelect > .optWrapper.multiple.isFloating > .options li.opt { padding-left: 35px; }
.SumoSelect > .optWrapper.multiple.isFloating { padding-bottom: 43px; }
.SumoSelect > .optWrapper.multiple > .options li.opt.selected span i,
.SumoSelect .select-all.selected > span i,
.SumoSelect .select-all.partial > span i{background-color: rgb(17, 169, 17);box-shadow: none;border-color: transparent;background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAGCAYAAAD+Bd/7AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNXG14zYAAABMSURBVAiZfc0xDkAAFIPhd2Kr1WRjcAExuIgzGUTIZ/AkImjSofnbNBAfHvzAHjOKNzhiQ42IDFXCDivaaxAJd0xYshT3QqBxqnxeHvhunpu23xnmAAAAAElFTkSuQmCC');background-repeat: no-repeat;background-position: center center;}
/*disabled state*/
.SumoSelect.disabled { opacity: 0.7;cursor: not-allowed;}
.SumoSelect.disabled > .CaptionCont{border-color:#ccc;box-shadow:none;}
/**Select all button**/
.SumoSelect .select-all{border-radius: 3px 3px 0 0;position: relative;border-bottom: 1px solid #ddd;background-color: #fff;padding: 8px 0 3px 35px;height: 20px;cursor: pointer;}
.SumoSelect .select-all > label, .SumoSelect .select-all > span i{cursor: pointer;}
.SumoSelect .select-all.partial > span i{background-color:#ccc;}
/*styling for optgroups*/
.SumoSelect > .optWrapper > .options li.optGroup { padding-left: 5px; text-decoration: underline; }
.reset-all {padding: 5px 10px 5px 35px;border-bottom: 1px solid #CDCDCD;}
.SumoSelect[is-selected="false"] .reset-all {opacity: 0.5;pointer-events: none;}
.SumoSelect[is-selected="true"] .reset-all {opacity: 1;cursor: pointer;color: #7799D0;}
.SumoSelect[is-selected="true"] .reset-all * {cursor: pointer;}
.SumoSelect[is-selected="true"] .reset-all:hover {color: black;}

1
odoo_website_helpdesk/static/src/cdn/sumoselect.min.css

File diff suppressed because one or more lines are too long

261
odoo_website_helpdesk/static/src/js/helpdesk_dashboard_action.js

@ -0,0 +1,261 @@
odoo.define('odoo_website_helpdesk.helpdesk_dashboard_action', function (require){
"use strict";
var AbstractAction = require('web.AbstractAction');
var ControlPanel = require('web.ControlPanel');
var core = require('web.core');
var QWeb = core.qweb;
var rpc = require('web.rpc');
var ajax = require('web.ajax');
var CustomDashBoard = AbstractAction.extend({
template: 'HelpdeskDashBoard',
start: function() {
var self = this;
ajax.rpc('/helpdesk_dashboard').then(function (res) {
$("#new_state_value").text(res.new)
$("#inprogress_value").text(res.in_progress)
$("#canceled_value").text(res.canceled)
$("#done_value").text(res.done)
$("#closed_value").text(res.closed)
$("#new_state").click(function(){
self.do_action({
name:'New Tickets',
type: 'ir.actions.act_window',
res_model: 'help.ticket',
view_mode: 'tree,form',
views: [[false, 'list'],[false, 'form']],
domain: [['id', '=', res.new_id]],
})
})
$("#in_progress_state").click(function(){
self.do_action({
name:'In progress Tickets',
type: 'ir.actions.act_window',
res_model: 'help.ticket',
view_mode: 'tree,form',
views: [[false, 'list'],[false, 'form']],
domain: [['id', '=', res.in_progress_id]],
})
})
$("#cancelled_state").click(function(){
self.do_action({
name:'Canceled Tickets',
type: 'ir.actions.act_window',
res_model: 'help.ticket',
view_mode: 'tree,form',
views: [[false, 'list'],[false, 'form']],
domain: [['id', '=', res.canceled_id]],
})
})
$("#done_state").click(function(){
self.do_action({
name:'Done Tickets',
type: 'ir.actions.act_window',
res_model: 'help.ticket',
view_mode: 'tree,form',
views: [[false, 'list'],[false, 'form']],
domain: [['id', '=', res.done_id]],
})
})
$("#closed_state").click(function(){
self.do_action({
name:'Closed Tickets',
type: 'ir.actions.act_window',
res_model: 'help.ticket',
view_mode: 'tree,form',
views: [[false, 'list'],[false, 'form']],
domain: [['id', '=', res.closed_id]],
})
})
// week function start
$("#filter_selection").change(function(e){
var target = $(e.target)
var value = target.val()
if (value == "this_week") {
ajax.rpc('/helpdesk_dashboard_week').then(function (res) {
$("#new_state_value").text(res.new)
$("#inprogress_value").text(res.in_progress)
$("#canceled_value").text(res.canceled)
$("#done_value").text(res.done)
$("#closed_value").text(res.closed)
$("#new_state").click(function(){
self.do_action({
name:'New Tickets',
type: 'ir.actions.act_window',
res_model: 'help.ticket',
view_mode: 'tree,form',
views: [[false, 'list'],[false, 'form']],
domain: [['id', '=', res.new_id]],
})
})
$("#in_progress_state").click(function(){
self.do_action({
name:'In progress Tickets',
type: 'ir.actions.act_window',
res_model: 'help.ticket',
view_mode: 'tree,form',
views: [[false, 'list'],[false, 'form']],
domain: [['id', '=', res.in_progress_id]],
})
})
$("#cancelled_state").click(function(){
self.do_action({
name:'Canceled Tickets',
type: 'ir.actions.act_window',
res_model: 'help.ticket',
view_mode: 'tree,form',
views: [[false, 'list'],[false, 'form']],
domain: [['id', '=', res.canceled_id]],
})
})
$("#done_state").click(function(){
self.do_action({
name:'Done Tickets',
type: 'ir.actions.act_window',
res_model: 'help.ticket',
view_mode: 'tree,form',
views: [[false, 'list'],[false, 'form']],
domain: [['id', '=', res.done_id]],
})
})
$("#closed_state").click(function(){
self.do_action({
name:'Closed Tickets',
type: 'ir.actions.act_window',
res_model: 'help.ticket',
view_mode: 'tree,form',
views: [[false, 'list'],[false, 'form']],
domain: [['id', '=', res.closed_id]],
})
})
})
}else if (value == "this_month") {
ajax.rpc('/helpdesk_dashboard_month').then(function (res) {
$("#new_state_value").text(res.new)
$("#inprogress_value").text(res.in_progress)
$("#canceled_value").text(res.canceled)
$("#done_value").text(res.done)
$("#closed_value").text(res.closed)
$("#new_state").click(function(){
self.do_action({
name:'New Tickets',
type: 'ir.actions.act_window',
res_model: 'help.ticket',
view_mode: 'tree,form',
views: [[false, 'list'],[false, 'form']],
domain: [['id', '=', res.new_id]],
})
})
$("#in_progress_state").click(function(){
self.do_action({
name:'In progress Tickets',
type: 'ir.actions.act_window',
res_model: 'help.ticket',
view_mode: 'tree,form',
views: [[false, 'list'],[false, 'form']],
domain: [['id', '=', res.in_progress_id]],
})
})
$("#cancelled_state").click(function(){
self.do_action({
name:'Canceled Tickets',
type: 'ir.actions.act_window',
res_model: 'help.ticket',
view_mode: 'tree,form',
views: [[false, 'list'],[false, 'form']],
domain: [['id', '=', res.canceled_id]],
})
})
$("#done_state").click(function(){
self.do_action({
name:'Done Tickets',
type: 'ir.actions.act_window',
res_model: 'help.ticket',
view_mode: 'tree,form',
views: [[false, 'list'],[false, 'form']],
domain: [['id', '=', res.done_id]],
})
})
$("#closed_state").click(function(){
self.do_action({
name:'Closed Tickets',
type: 'ir.actions.act_window',
res_model: 'help.ticket',
view_mode: 'tree,form',
views: [[false, 'list'],[false, 'form']],
domain: [['id', '=', res.closed_id]],
})
})
})
}else if (value == "this_year") {
ajax.rpc('/helpdesk_dashboard_year').then(function (res) {
$("#new_state_value").text(res.new)
$("#inprogress_value").text(res.in_progress)
$("#canceled_value").text(res.canceled)
$("#done_value").text(res.done)
$("#closed_value").text(res.closed)
$("#new_state").click(function(){
self.do_action({
name:'New Tickets',
type: 'ir.actions.act_window',
res_model: 'help.ticket',
view_mode: 'tree,form',
views: [[false, 'list'],[false, 'form']],
domain: [['id', '=', res.new_id]],
})
})
$("#in_progress_state").click(function(){
self.do_action({
name:'In progress Tickets',
type: 'ir.actions.act_window',
res_model: 'help.ticket',
view_mode: 'tree,form',
views: [[false, 'list'],[false, 'form']],
domain: [['id', '=', res.in_progress_id]],
})
})
$("#cancelled_state").click(function(){
self.do_action({
name:'Canceled Tickets',
type: 'ir.actions.act_window',
res_model: 'help.ticket',
view_mode: 'tree,form',
views: [[false, 'list'],[false, 'form']],
domain: [['id', '=', res.canceled_id]],
})
})
$("#done_state").click(function(){
self.do_action({
name:'Done Tickets',
type: 'ir.actions.act_window',
res_model: 'help.ticket',
view_mode: 'tree,form',
views: [[false, 'list'],[false, 'form']],
domain: [['id', '=', res.done_id]],
})
})
$("#closed_state").click(function(){
self.do_action({
name:'Closed Tickets',
type: 'ir.actions.act_window',
res_model: 'help.ticket',
view_mode: 'tree,form',
views: [[false, 'list'],[false, 'form']],
domain: [['id', '=', res.closed_id]],
})
})
})
}
});
})
},
})
core.action_registry.add('helpdesk_dashboard_tag', CustomDashBoard);
return CustomDashBoard
})

14
odoo_website_helpdesk/static/src/js/multiple_product_choose.js

@ -0,0 +1,14 @@
odoo.define('odoo_website_helpdesk.multiple_product_choose', function(require) {
"use strict";
var ajax = require('web.ajax');
$(document).ready(function() {
ajax.rpc('/product').then(function (res) {
var ar = res
$('#product').empty()
$(ar).each(function(i){
$('#product').append("<option value=" + ar[i].id + ">" + ar[i].name + "</option>");
});
$('#product').SumoSelect({ clearAll: true });
});
});
});

16
odoo_website_helpdesk/static/src/js/portal_groupby.js

@ -0,0 +1,16 @@
odoo.define("odoo_website_helpdesk.portal_group_by", function (require) {
"use strict";
var ajax = require('web.ajax');
var core = require('web.core');
var QWeb = core.qweb;
$("#group_select").on('change', function () {
var search_value = $("#group_select").val();
ajax.jsonRpc('/ticketgroupby', 'call', {
'search_value': search_value,
}).then(function(result) {
$('.search_ticket').html(result);
});
})
})

16
odoo_website_helpdesk/static/src/js/portal_search.js

@ -0,0 +1,16 @@
odoo.define("odoo_website_helpdesk.portal_search", function (require) {
"use strict";
var ajax = require('web.ajax');
var core = require('web.core');
var QWeb = core.qweb;
$("#search_ticket").on('click', function () {
var search_value = $("#search_box").val();
ajax.jsonRpc('/ticketsearch', 'call', {
'search_value': search_value,
}).then(function(result) {
$('.search_ticket').html(result);
});
})
})

1
odoo_website_helpdesk/static/src/js/ticket_details.js

@ -2,7 +2,6 @@ odoo.define("odoo_website_helpdesk.ticket_details", function (require) {
"use strict";
$(document).on("mouseover", "#popover", function (event) {
console.log("start");
var self = this;
var item_text = "";
if (self.parentElement.parentElement.children[3]) {

533
odoo_website_helpdesk/static/src/scss/rating.css

@ -0,0 +1,533 @@
.starRating{
display : inline-block;
position : relative;
height : 24px;
background : url('/multi_vendor_marketplace/static/src/img/stars1.png') repeat-x 0 0;
margin-bottom:10px;
margin-left: 8px;
}
.starR{
display : inline-block;
position : relative;
height : 24px;
background : url('/multi_vendor_marketplace/static/src/img/stars1.png') repeat-x 0 0;
margin-bottom:7px;
}
.starRating div{
float : left;
position : relative;
height : 24px;
}
.starRating input{
position : relative;
z-index : 1;
width : 24px;
height : 24px;
margin : 0;
padding : 0;
opacity : 0;
}
.starRating label{
position : absolute;
top : 0;
left : 0;
width : 100%;
height : 24px;
}
.starRating span{
display : none;
}
.starRating input:checked + label,
.starRating:hover input:checked:hover + label{
background : url('/multi_vendor_marketplace/static/src/img/stars1.png') repeat-x 0 -24px;
}
.starRating:hover input:checked + label{
background : transparent;
}
.starRating:hover input:hover + label{
background : url('/multi_vendor_marketplace/static/src/img/stars1.png') repeat-x 0 -48px;
}
.starRating1{
display : inline-block;
position : relative;
height : 24px;
background : url('/multi_vendor_marketplace/static/src/img/stars1.png') repeat-x 0 0;
vertical-align : bottom;
float:left;
margin-top:-5px;
}
.starRating1 div{
float : left;
position : relative;
height : 24px;
}
.starRating1 input{
position : relative;
z-index : 1;
width : 24px;
height : 24px;
margin : 0;
padding : 0;
opacity : 0;
}
.starRating1 label{
position : absolute;
top : 0;
left : 0px;
width : 100%;
height : 24px;
}
.starRating1 span{
display : none;
}
.starRating1 input:checked + label{
background : url('/multi_vendor_marketplace/static/src/img/stars1.png') repeat-x 0 -24px;
}
input:checked + label{
background : transparent;
}
.starRating2{
display : inline-block;
background : url('/multi_vendor_marketplace/static/src/img/stars1.png') repeat-x 0 0;
margin-bottom:5px;
margin-left: 8px;
}
.starRating2 div{
float : left;
}
.starRating2 input{
width : 24px;
opacity : 0;
}
.starRating2 label{
position : absolute;
}
.starRating2 span{
display : none;
}
.image_star{
display : inline-block;
position : relative;
height : 24px;
background : url('/multi_vendor_marketplace/static/src/img/stars1.png') repeat-x 0 -24px;
vertical-align : bottom;
color :white;
width:24px;
top:8px;
}
.rate_effect{
float:left;
color: #168D93;
font-size:17px;
padding-right: 48px;
width: 180px;
}
.social-button_rate{
display: inline-block;
height: 25px;
vertical-align: middle;
width: 125px;
}
@media (max-width:500px)
{
.social-button_rate
{
width:300px !important;
margin-left:40px;
}
}
@media (max-width:500px)
{
.social-button
{
float:left;
}
}
.cancel_rating_class{
width: 16px;
height: 16px;
border:none;
background-color:white;
float:left;
margin-left:4px;
margin-top: 5px;
}
div.cancel_rating_class, div.cancel_rating_class a{
background: url("/multi_vendor_marketplace/static/src/img/thumb_icon.png") no-repeat scroll 0 -16px rgba(0, 0, 0, 0);
background-position:0 0;
}
div.cancel_rating_class:hover{
background: url("/multi_vendor_marketplace/static/src/img/thumb_icon.png") no-repeat scroll 0 -16px rgba(0, 0, 0, 0);
background-position:0 0px;
}
/*---------------------------------average star----------------------------------------*/
span.stars, span.stars span {
background: url("/multi_vendor_marketplace/static/src/img/stars11.png") repeat-x scroll 0 -46px rgba(0, 0, 0, 0);
display: block;
height:18px;
width: 85px;
margin: 0 auto;
padding-right: 43px;
}
span.stars span {
background-position: 0 0;
}
span.stars3, span.stars span {
background: url("/multi_vendor_marketplace/static/src/img/stars11.png") repeat-x scroll 0 -46px rgba(0, 0, 0, 0);
display: block;
height:18px;
width: 85px;
margin: 0 auto;
padding-right: 43px;
}
span.stars3 span {
background-position: 0 0;
}
span.stars4, span.stars4 span {
background: url("/multi_vendor_marketplace/static/src/img/stars11.png") repeat-x scroll 0 -46px rgba(0, 0, 0, 0);
display: block;
height:18px;
width: 85px;
margin: 0 auto;
padding-right: 43px;
margin-top:10px;
}
span.stars4 span {
background-position: 0 0;
}
span.stars3, span.stars3 span {
background: url("/multi_vendor_marketplace/static/src/img/stars11.png") repeat-x scroll 0 -46px rgba(0, 0, 0, 0);
display: block;
height:18px;
width: 85px;
margin: 0 auto;
padding-right: 43px;
}
span.stars4 span {
background-position: 0 0;
}
span.stars3, span.stars3 span {
background: url("/multi_vendor_marketplace/static/src/img/stars11.png") repeat-x scroll 0 -46px rgba(0, 0, 0, 0);
display: block;
height:18px;
width: 85px;
margin: 0 auto;
padding-right: 43px;
}
span.stars3 span {
background-position: 0 0;
}
/*---------------------------------------blog short--------------------------------------------*/
.rate_format_short{
margin-bottom: -10px;margin-bottom: -10px;
float:right;
margin-right: 139px;
margin-top: -7px;
width: 250px;
}
/*------------------------------------pager-------------------------------------------------*/
.jPaginate{
height:34px;
position:relative;
color:#168D93;
font-size:small;
width:100%;
}
.jPaginate a{
line-height:15px;
height:18px;
cursor:pointer;
padding:1px 5px 10px;
margin:2px;
margin-top:5px;
text-decoration:none;
float:left;
}
.jPag-control-back{
position:absolute;
left:0px;
}
.jPag-control-front{
position:absolute;
top:0px;
}
.jPaginate span{
cursor:pointer;
}
ul.jPag-pages{
float:left;
list-style-type:none;
margin:0px 0px 0px 0px;
padding:0px;
}
ul.jPag-pages li{
display:inline;
float:left;
padding:0px;
margin:0px;
}
ul.jPag-pages li a{
float:left;
padding:2px 5px;
}
span.jPag-current{
cursor:default;
font-weight:normal;
line-height:15px;
height:18px;
padding:2px 5px;
margin:2px;
margin-top:5px;
float:left;
}
ul.jPag-pages li span.jPag-previous,
ul.jPag-pages li span.jPag-next,
span.jPag-sprevious,
span.jPag-snext,
ul.jPag-pages li span.jPag-previous-img,
ul.jPag-pages li span.jPag-next-img,
span.jPag-sprevious-img,
span.jPag-snext-img{
height:22px;
margin:2px;
float:left;
line-height:18px;
}
ul.jPag-pages li span.jPag-previous,
ul.jPag-pages li span.jPag-previous-img{
margin:2px 0px 2px 2px;
font-size:12px;
font-weight:bold;
width:10px;
}
ul.jPag-pages li span.jPag-next,
ul.jPag-pages li span.jPag-next-img{
margin:2px 2px 2px 0px;
font-size:12px;
font-weight:bold;
width:10px;
}
span.jPag-sprevious,
span.jPag-sprevious-img{
margin:2px 0px 2px 2px;
font-size:18px;
width:15px;
text-align:right;
}
span.jPag-snext,
span.jPag-snext-img{
margin:2px 2px 2px 0px;
font-size:18px;
width:15px;
text-align:right;
}
ul.jPag-pages li span.jPag-previous-img{
background:transparent url(/website_ept/static/src/img/pager/previous.png) no-repeat center right;
}
ul.jPag-pages li span.jPag-next-img{
background:transparent url(/website_ept/static/src/img/pager/next.png) no-repeat center left;
}
span.jPag-sprevious-img{
background:transparent url(/website_ept/static/src/img/pager/sprevious.png) no-repeat center right;
}
span.jPag-snext-img{
background:transparent url(/website_ept/static/src/img/pager/snext.png) no-repeat center left;
}
---------------------------------shop-----------------------------------------------*/
.class_href1_shop{
margin-top:-20px;
}
.alert_form_class{
display:none;
}
.form_shop{
width:500px;
display: none;
background-color:white;
overflow:hidden;
padding:15px;
box-shadow: 0 5px 9px -7px #168D93 inset, 0 -3px 9px -7px #168D93 inset;
}
@media (max-width:500px)
{
.form_shop{
width:200px !important;
}
}
@media (max-width:1000px)
{
.form_shop{
width:400px !important;
}
}
.input_class{
width:350px;
}
@media (max-width:500px)
{
.input_class{
width:170px !important;
}
}
@media (max-width:1000px)
{
.input_class{
width:300px !important;
}
}
.input_shop
{
margin-left:50px;
}
.class_href1_shop
{
color:black;
padding:10px 10px 9px;
font-size:17px;
font-weight:bold;
}
.oe_product .oe_product_image img
{
position:relative !important;
}
.rate_format
{
display:inline-block;
margin: 0px auto;
}
.stars3 > span
{
padding:0px !important;
margin:0px !important;
}
.stars4 > span
{
padding:0px !important;
margin:0px !important;
}
.oe_product .oe_product_image
{
left:0px !important;
right:0px !important;
top:0px !important;
bottom: 55px !important;
text-align: center !important;
}
.posted_on_product_rate_date
{
font-size:14px;
color: gainsboro;
}
.css_product_long
{
width: 100%;
display: inline-block;
font-style:italic;
font-size: 14px;
color: aliceblue;
padding-top:10px;
}
.css_poduct_long >p
{
margin:0px !important;
}
.review_class_rating
{
font-size:13px;
}
.media:first-child
{
margin-top:10px !important;
}
.medianew
{
margin-top:10px !important;
background-color: #878787;
padding: 17px;
display: inline-block;
width: 100%;
box-shadow: 0 13px 8px -5px #777;
margin-top: 20px !important;
}
.product_short
{
font-weight:bold;
color:white;
margin-bottom:7px;
font-size:16px;
}
form >.media
{
background-color:transparent !important;
box-shadow:0px 0px 0px 0px !important;
}
.post_your_review
{
font-size:22px;
margin-top:20px;
margin-bottom:-32px;
color: black;
font-weight: 600;
}
#demo5
{
margin-top:20px;
}
.mb32
{
margin-top:0px;
border: 0px !important;
}
div
{
}
.whole_rate_format_class
{
display: inline-block;
width: 100%;
background-color: rgba(204, 204, 204,0.6);
}
.h1
{
width:100%;
display:inline-block;
}

286
odoo_website_helpdesk/static/src/xml/helpdesk_dashboard.xml

@ -0,0 +1,286 @@
<?xml version="1.0" encoding="utf-8" ?>
<template>
<t t-name="HelpdeskDashBoard">
<section class="dashboard_main_section" id="main_section_manager">
<div class="row">
<style>
.c-dashboardInfo {
margin-bottom: 15px;
width: 20%;
}
.c-dashboardInfo .wrap {
background: #ffffff;
box-shadow: 2px 10px 20px rgba(0, 0, 0, 0.1);
border-radius: 7px;
text-align: center;
position: relative;
overflow: hidden;
padding: 40px 25px 20px;
height: 100%;
}
.c-dashboardInfo__title,
.c-dashboardInfo__subInfo {
color: #6c6c6c;
font-size: 1.18em;
}
.c-dashboardInfo span {
display: block;
}
.c-dashboardInfo__count {
font-weight: 600;
font-size: 2.5em;
line-height: 64px;
color: #323c43;
}
.c-dashboardInfo .wrap:after {
display: block;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 10px;
content: "";
}
.c-dashboardInfo:nth-child(1) .wrap:after {
background: linear-gradient(82.59deg, #00c48c 0%, #00a173
100%);
}
.wrap:hover{
-webkit-transform: scale(1.2);
-ms-transform: scale(1.2);
transform: scale(1.2);
transition: 1s ease;
}
.c-dashboardInfo:nth-child(2) .wrap:after {
background: linear-gradient(81.67deg, #0084f4 0%, #1a4da2
100%);
}
.c-dashboardInfo:nth-child(3) .wrap:after {
background: linear-gradient(69.83deg, #0084f4 0%, #00c48c
100%);
}
.c-dashboardInfo:nth-child(4) .wrap:after {
background: linear-gradient(81.67deg, #ff647c 0%, #1f5dc5
100%);
}
.c-dashboardInfo:nth-child(5) .wrap:after {
background: linear-gradient(82.59deg, #00c48c 0%, #00a173
100%);
}
.c-dashboardInfo:nth-child(6) .wrap:after {
background: linear-gradient(81.67deg, #ff647c 0%, #1f5dc5
100%);
}
.c-dashboardInfo__title svg {
color: #d7d7d7;
margin-left: 5px;
}
.MuiSvgIcon-root-19 {
fill: currentColor;
width: 1em;
height: 1em;
display: inline-block;
font-size: 24px;
transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
user-select: none;
flex-shrink: 0;
}
.dropbtn {
background-color: #04AA6D;
color: white;
padding: 16px;
font-size: 16px;
border: none;
width: 16px;
}
.dropdown {
position: relative;
display: inline-block;
}
.dropdown-content {
display: none;
position: absolute;
background-color: #f1f1f1;
min-width: 160px;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
z-index: 1;
}
.dropdown-content a {
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
}
.dropdown-content a:hover {background-color: #ddd;}
.dropdown:hover .dropdown-content {display: block;}
.dropdown:hover .dropbtn {background-color: #3e8e41;}
</style>
<div class="col-sm-12 mb-4">
<div class="row">
<div class="col"
style="margin-top: 28px;margin-left: 88px;height: 48px;">
<h2 class="section-header" style="color:#4a5c9a;">
Helpdesk Dashboard
</h2>
</div>
<div class="col-md-4 d-flex justify-content-end bg-light"
style="margin-top: 20px;margin-right: 20px; padding-bottom: 40px">
<b style="white-space: nowrap;padding-right: 8px;padding-top: 8px;">Filter by:</b>
<select id="filter_selection" style="width: 50%;padding:10px;border-radius:10px; background:white;">
<option id="this_year" value="this_year"
selected="">This Year
</option>
<option id="this_month"
value="this_month">This Month
</option>
<option id="this_week" value="this_week">This Week
</option>
</select>
</div>
<hr/>
</div>
</div>
<div id="root">
<div class="container pt-5">
<div class="row align-items-stretch">
<div class="c-dashboardInfo"
id="new_state">
<div class="wrap">
<h4 class="heading heading5 hind-font medium-font-weight c-dashboardInfo__title">
New
<svg
class="MuiSvgIcon-root-19"
focusable="false"
viewBox="0 0 24 24"
aria-hidden="true"
role="presentation">
<path fill="none"
d="M0 0h24v24H0z"></path>
<path
d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z">
</path>
</svg>
</h4>
<span class="hind-font caption-12 c-dashboardInfo__count"
id="new_state_value">
</span>
</div>
</div>
<div class="c-dashboardInfo"
id="in_progress_state">
<div class="wrap">
<h4 class="heading heading5 hind-font medium-font-weight c-dashboardInfo__title">
In Progress
<svg
class="MuiSvgIcon-root-19"
focusable="false"
viewBox="0 0 24 24"
aria-hidden="true"
role="presentation">
<path fill="none"
d="M0 0h24v24H0z"></path>
<path
d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z">
</path>
</svg>
</h4>
<span class="hind-font caption-12 c-dashboardInfo__count"
id="inprogress_value">
</span>
</div>
</div>
<div class="c-dashboardInfo"
id="cancelled_state">
<div class="wrap">
<h4 class="heading heading5 hind-font medium-font-weight c-dashboardInfo__title">
Cancelled
<svg
class="MuiSvgIcon-root-19"
focusable="false"
viewBox="0 0 24 24"
aria-hidden="true"
role="presentation">
<path fill="none"
d="M0 0h24v24H0z"></path>
<path
d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z">
</path>
</svg>
</h4>
<span class="hind-font caption-12 c-dashboardInfo__count"
id="canceled_value">
</span>
</div>
</div>
<div class="c-dashboardInfo"
id="done_state">
<div class="wrap">
<h4 class="heading heading5 hind-font medium-font-weight c-dashboardInfo__title">
Done
<svg
class="MuiSvgIcon-root-19"
focusable="false"
viewBox="0 0 24 24"
aria-hidden="true"
role="presentation">
<path fill="none"
d="M0 0h24v24H0z"></path>
<path
d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z">
</path>
</svg>
</h4>
<span class="hind-font caption-12 c-dashboardInfo__count"
id="done_value">
</span>
<!-- <span-->
<!-- class="hind-font caption-12 c-dashboardInfo__subInfo">-->
<!-- Last month: €30-->
<!-- </span>-->
</div>
</div>
<div class="c-dashboardInfo"
id="closed_state">
<div class="wrap">
<h4 class="heading heading5 hind-font medium-font-weight c-dashboardInfo__title">
Closed
<svg
class="MuiSvgIcon-root-19"
focusable="false"
viewBox="0 0 24 24"
aria-hidden="true"
role="presentation">
<path fill="none"
d="M0 0h24v24H0z"></path>
<path
d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z">
</path>
</svg>
</h4>
<span class="hind-font caption-12 c-dashboardInfo__count"
id="closed_value">
</span>
</div>
</div>
</div>
</div>
</div>
</section>
</t>
</template>

56
odoo_website_helpdesk/templates/helpdesk_replay_template.xml

@ -0,0 +1,56 @@
<odoo>
<data>
<record id="helpdesk_replay_email_template" model="mail.template">
<field name="name">Helpdesk Reply Email Template</field>
<field name="model_id"
ref="odoo_website_helpdesk.model_help_ticket"/>
<field name="auto_delete" eval="True"/>
<field name="subject">{{ object.name }} Replay</field>
<field name="body_html" type="html">
<div class="container">
<h4 style="text-align:center">Helpdesk Replay</h4>
<div style="min-height:30vh;">
message........
</div>
<h6><a t-attf-href="http://cybrosys:8050/@/my/tickets/{{object.id}}"
class="btn btn-primary">View Ticket
</a></h6>
<table class="table table-light" width="100%">
<tbody>
<tr>
<th>Name</th>
<td>
<t t-if="object.assigned_user">
<t t-esc="object.assigned_user.name"/>
</t>
<t t-else="">
username
</t>
</td>
</tr>
<tr>
<th>Team name</th>
<td>
<t t-if="object.team_id">
<t t-esc="object.team_id.name"/>
</t>
<t t-else="">
Team name
</t>
</td>
</tr>
<tr>
<th>Replied On</th>
<td>
<t t-set="date"
t-value="(datetime.date.today())"/>
<t t-esc="date"/>
</td>
</tr>
</tbody>
</table>
</div>
</field>
</record>
</data>
</odoo>

13
odoo_website_helpdesk/views/categories.xml

@ -0,0 +1,13 @@
<odoo>
<record id="view_helpdesk_categories_tree" model="ir.ui.view">
<field name="name">categories.tree</field>
<field name="model">helpdesk.categories</field>
<field name="arch" type="xml">
<tree string="Categories" editable="bottom">
<field name="sequence" widget="handle"/>
<field name="name"/>
</tree>
</field>
</record>
</odoo>

276
odoo_website_helpdesk/views/helpdesk.xml

@ -5,18 +5,29 @@
<field name="arch" type="xml">
<form>
<header>
<button name="create_tasks" string="Create Task" type="object" class="btn-primary" attrs="{'invisible':[('create_task','=',False)]}"/>
<button name="create_invoice" string="Create Invoice" type="object" class="btn-primary" attrs="{'invisible':[('billable','=',False)]}"/>
<button name="action_send_reply" string="Reply"
type="object" class="btn-primary"/>
<button name="create_tasks" string="Create Task"
type="object" class="btn-primary"
attrs="{'invisible':[('create_task','=',False)]}"/>
<button name="create_invoice" string="Create Invoice"
type="object" class="btn-primary"
attrs="{'invisible':[('billable','=',False)]}"/>
<field name="stage_id" widget="statusbar" options="{'clickable': '1'}"/>
</header>
<sheet>
<div class="oe_button_box" name="button_box">
<button class="oe_stat_button" name="open_tasks" string="Tasks" type="object" icon="fa-tasks" attrs="{'invisible':[('create_task','=',False)]}">
<button class="oe_stat_button" name="open_tasks"
string="Tasks" type="object" icon="fa-tasks"
attrs="{'invisible':[('create_task','=',False)]}">
</button>
<button class="oe_stat_button" name="open_invoices" string="Invoices" type="object" icon="fa-tasks" attrs="{'invisible':[('billable','=',False)]}">
<button class="oe_stat_button" name="open_invoices"
string="Invoices" type="object" icon="fa-tasks"
attrs="{'invisible':[('billable','=',False)]}">
</button>
</div>
<field name="kanban_state" widget="state_selection"/>
<div class="oe_title">
<label for="name" class="oe_edit_only"/>
<h1>
@ -30,34 +41,84 @@
<group>
<group>
<field name="customer_id"/>
<field name="customer_name"/>
<field name="ticket_type"/>
<field name="email"/>
<field name="phone"/>
<field name="cost"/>
<field name="start_date"/>
</group>
<field name="tags" widget="many2many_tags"/>
</group>
<group>
<field name="team_id"/>
<field name="project_id"/>
<field name="service_product_id" attrs="{'invisible':[('create_task','=',False)],
'required': [('create_task','=', True)]}"/>
<field name="show_category" invisible="1"/>
<field name="priority" widget="priority"/>
<field name="show_create_task" invisible="1"/>
<field name="create_task" attrs="{'invisible':[('show_create_task','=',False)]}"/>
<field name="billable" attrs="{'invisible':[('create_task','=',False)]}"/>
<field name="create_date"/>
<field name="start_date"/>
<field name="end_date"/>
<field name="product_id" widget="many2many_tags"/>
<field name="show_category" invisible="1"/>
</group>
</group>
<notebook>
<page string="Issue Description">
<field name="description" placeholder="Provide the reason in detail"/>
<field name="description"
placeholder="Provide the reason in detail"/>
</page>
<page string="Attachments">
<field name="attachment_ids">
<tree string="Attachments" no_open="1">
<field name="name"/>
<field name="res_model"/>
<field name="res_field"/>
<field name="res_id"/>
<field name="type"/>
<field name="file_size"/>
<field name="company_id"/>
<field name="create_uid"/>
<field name="create_date"/>
<field name="datas" widget="binary"
filename="name"/>
</tree>
</field>
</page>
<page string="Customer Rating">
<group>
<field name="customer_rating"
widget="priority"/>
<field name="review"/>
</group>
</page>
<page string="Other Information">
<group>
<group>
<field name="team_id"/>
<field name="team_head"/>
<field name="assigned_user"/>
<field name="category_id"
groups="odoo_website_helpdesk.group_show_category"/>
</group>
<group>
<field name="project_id"/>
<field name="service_product_id" attrs="{'invisible':[('create_task','=',False)],
'required': [('create_task','=', True)]}"/>
<field name="show_create_task"
invisible="1"/>
<field name="create_task"
attrs="{'invisible':[('show_create_task','=',False)]}"/>
<field name="billable"
attrs="{'invisible':[('create_task','=',False)]}"/>
<field name="last_update_date"/>
<field name="replied_date"/>
</group>
</group>
</page>
</notebook>
</sheet>
<div class="o_attachment_preview"/>
<div class="oe_chatter">
<field name="message_follower_ids" groups="base.group_user"/>
<field name="message_follower_ids"
groups="base.group_user"/>
<field name="activity_ids"/>
<field name="message_ids"/>
</div>
@ -78,53 +139,89 @@
</tree>
</field>
</record>
<record id="view_helpdesk_quick_create_form" model="ir.ui.view">
<field name="name">help.ticket.quick.form</field>
<field name="model">help.ticket</field>
<field name="arch" type="xml">
<form>
<group>
<field name="subject" string="Subject"/>
<field name="customer_id" string="Customer"/>
<field name="description" string="Description"/>
</group>
</form>
</field>
</record>
<record id="view_helpdesk_kanban" model="ir.ui.view">
<field name="name">help.ticket.kanban</field>
<field name="model">help.ticket</field>
<field name="arch" type="xml">
<kanban default_group_by="stage_id" class="o_kanban_small_column" quick_create="false" on_create="quick_create">
<kanban default_group_by="stage_id" class="o_kanban_small_column"
quick_create="true"
quick_create_view="odoo_website_helpdesk.view_helpdesk_quick_create_form"
on_create="quick_create">
<field name="color"/>
<field name="name"/>
<field name="stage_id"/>
<field name="kanban_state"/>
<progressbar field="kanban_state"
colors="{&quot;done&quot;: &quot;success&quot;, &quot;blocked&quot;: &quot;danger&quot;, &quot;normal&quot;: &quot;200&quot;}"/>
<templates>
<t t-name="kanban-box">
<div t-attf-class="#{kanban_color(record.color.raw_value)} oe_kanban_global_click">
<div t-attf-class="#{!selection_mode ? kanban_color(record.color.raw_value) : ''} #{lost_ribbon ? 'oe_kanban_card_ribbon' : ''} oe_kanban_global_click oe_kanban_card d-flex flex-column">
<div class="o_dropdown_kanban dropdown">
<a role="button" class="dropdown-toggle o-no-caret btn" data-toggle="dropdown" href="#" aria-label="Dropdown menu" title="Dropdown menu">
<a role="button"
class="dropdown-toggle o-no-caret btn"
data-toggle="dropdown" href="#"
aria-label="Dropdown menu"
title="Dropdown menu">
<span class="fa fa-ellipsis-v"/>
</a>
<div class="dropdown-menu" role="menu">
<t t-if="widget.editable">
<a role="menuitem" type="edit" class="dropdown-item">Edit...</a>
<a role="menuitem" type="edit"
class="dropdown-item">Edit...
</a>
</t>
<t t-if="widget.deletable">
<a role="menuitem" type="delete" class="dropdown-item">Delete</a>
<a role="menuitem" type="delete"
class="dropdown-item">Delete
</a>
</t>
<ul class="oe_kanban_colorpicker" data-field="color"/>
<ul class="oe_kanban_colorpicker"
data-field="color"/>
</div>
</div>
<div class="oe_kanban_content">
<div>
<strong>
<field name="name"/>
</strong>
<div class="row">
<div class="col">
<strong>
<field name="name"/>
</strong>
</div>
</div>
<div class="text-muted">
<a>Customer : </a>
<field name="customer_id"/>
<div style="float: right;">
<a>Priority : </a>
<field name="priority"/>
</div>
</div>
<div class="text-muted">
<a>Subject : </a>
<field name="subject"/>
<div>
<field name="tags" widget="many2many_tags"/>
</div>
<div class="text-muted">
<a>Team :</a>
<div class="text-muted"
attrs="{'invisible': [('team_id', '=', False)]}">
<field name="team_id"/>
</div>
<div class="o_kanban_record_bottom flex-wrap">
<div class="oe_kanban_bottom_left">
<field name="priority"
widget="priority"/>
<field name="activity_ids" widget="kanban_activity"/>
</div>
<div class="oe_kanban_bottom_right">
<field name="kanban_state" widget="state_selection"/>
<field name="user_id" widget="many2one_avatar_user"/>
</div>
</div>
</div>
<div class="oe_clear"/>
</div>
@ -144,7 +241,8 @@
<div t-name="activity-box">
<div>
<field name="name" display="full"/>
<field name="customer_id" muted="1" display="full"/>
<field name="customer_id" muted="1"
display="full"/>
</div>
</div>
</templates>
@ -156,7 +254,9 @@
<field name="name">help.ticket.calendar</field>
<field name="model">help.ticket</field>
<field name="arch" type="xml">
<calendar string="Helpdesk Ticket" date_start="start_date" date_stop="end_date" event_open_popup="true" mode="month" color="customer_id" quick_add="False">
<calendar string="Helpdesk Ticket" date_start="create_date"
event_open_popup="true" mode="month"
color="customer_id" quick_add="False">
<field name="customer_id"/>
<field name="subject"/>
<field name="team_id"/>
@ -171,15 +271,19 @@
<field name="arch" type="xml">
<form>
<sheet>
<div class="oe_title">
<label for="name" class="oe_edit_only"/>
<h1>
<field name="name"/>
</h1>
</div>
<group>
<field name="sequence"/>
<field name="closing_stage"/>
<group>
<field name="name"/>
<field name="template_id"/>
<field name="starting_stage"/>
<field name="cancel_stage"/>
</group>
<group>
<field name="fold"/>
<field name="sequence"/>
<field name="closing_stage"/>
<field name="group_ids" widget="many2many_tags"/>
</group>
</group>
</sheet>
</form>
@ -194,8 +298,86 @@
<field name="name"/>
<field name="sequence"/>
<field name="closing_stage"/>
<field name="fold"/>
</tree>
</field>
</record>
<record id="view_helpdesk_types_tree" model="ir.ui.view">
<field name="name">helpdesk.types.tree</field>
<field name="model">helpdesk.types</field>
<field name="arch" type="xml">
<tree editable="bottom">
<field name="name"/>
</tree>
</field>
</record>
<record id="view_helpdesk_tag_tree" model="ir.ui.view">
<field name="name">helpdesk.tag.tree</field>
<field name="model">helpdesk.tag</field>
<field name="arch" type="xml">
<tree editable="bottom">
<field name="name"/>
</tree>
</field>
</record>
<record id="help_ticket_view_pivot" model="ir.ui.view">
<field name="name">help.ticket.pivot</field>
<field name="model">help.ticket</field>
<field name="arch" type="xml">
<pivot>
<field name="customer_id" type="col"/>
<field name="subject" type="row"/>
<field name="team_id" type="col"/>
<field name="customer_name" type="col"/>
<field name="email"/>
<field name="phone"/>
<field name="start_date"/>
<field name="team_id" type="col"/>
<field name="project_id"/>
</pivot>
</field>
</record>
<record id="help_ticket_view_graph" model="ir.ui.view">
<field name="name">help.ticket.graph</field>
<field name="model">help.ticket</field>
<field name="arch" type="xml">
<graph>
<field name="customer_id"/>
<field name="subject"/>
<field name="team_id"/>
<field name="customer_name"/>
<field name="email"/>
<field name="phone"/>
<field name="start_date"/>
<field name="team_id"/>
<field name="project_id"/>
</graph>
</field>
</record>
<record id="help_ticket_search" model="ir.ui.view">
<field name="name">help.ticket.search</field>
<field name="model">help.ticket</field>
<field name="arch" type="xml">
<search string="Ticket Search">
<field name="name" string="Ticket"/>
<field name="subject"/>
<filter string="my_ticket" name="My Ticket"
domain="[('assigned_user', '=', uid)]"/>
<group expand="0" string="Group By">
<filter name="Customer" string="Customer"
context="{'group_by':'customer_id'}"/>
<filter name="Team" string="Team"
context="{'group_by':'team_id'}"/>
<filter name="Team_Head" string="Team Head" context="{'group_by':'team_head'}"/>
<filter name="assign" string="Assigned To" context="{'group_by':'assigned_user'}"/>
</group>
</search>
</field>
</record>
</odoo>

84
odoo_website_helpdesk/views/helpdesk_views.xml

@ -1,10 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="helpdesk_dashboard_action" model="ir.actions.client">
<field name="name">Helpdesk Dashboard</field>
<field name="tag">helpdesk_dashboard_tag</field>
</record>
<record id="action_helpdesk" model="ir.actions.act_window">
<field name="name">Helpdesk</field>
<field name="res_model">help.ticket</field>
<field name="view_mode">kanban,tree,form,calendar,activity</field>
<field name="view_mode">kanban,tree,form,calendar,activity,pivot,graph</field>
</record>
<record id="action_helpdesk_my" model="ir.actions.act_window">
<field name="name">My Helpdesk</field>
<field name="res_model">help.ticket</field>
<field name="domain">[('assigned_user','=',uid), ('team_head','=', uid)]</field>
<field name="view_mode">kanban,tree,form,calendar,activity,pivot,graph</field>
</record>
<record id="action_helpdesk_team" model="ir.actions.act_window">
@ -19,6 +31,33 @@
<field name="view_mode">tree,form</field>
</record>
<record id="action_helpdesk_types" model="ir.actions.act_window">
<field name="name">Types</field>
<field name="res_model">helpdesk.types</field>
<field name="view_mode">tree</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a new record!
</p>
</field>
</record>
<record id="action_helpdesk_tag" model="ir.actions.act_window">
<field name="name">Tags</field>
<field name="res_model">helpdesk.tag</field>
<field name="view_mode">tree</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a new record!
</p>
</field>
</record>
<record id="action_helpdesk_categories" model="ir.actions.act_window">
<field name="name">Categories</field>
<field name="res_model">helpdesk.categories</field>
<field name="view_mode">tree</field>
</record>
<record id="action_helpdesk_general_settings"
model="ir.actions.act_window">
<field name="name">Helpdesk Ticket</field>
@ -28,15 +67,26 @@
<field name="target">inline</field>
<field name="context">{'module': 'helpdesk_ticket'}</field>
</record>
<record id="action_report_helpdesk" model="ir.actions.act_window">
<field name="name">Report Help Desk</field>
<field name="res_model">help.ticket</field>
<field name="view_mode">graph,search</field>
</record>
<menuitem id="menu_helpdesk" name="Helpdesk" action="action_helpdesk"
<menuitem id="menu_helpdesk" name="Helpdesk" action="helpdesk_dashboard_action"
sequence="1"/>
<menuitem id="helpdesk_management" parent="menu_helpdesk" name="Support"
action="action_helpdesk" sequence="1"/>
<!-- <menuitem id="helpdesk_dashboard" parent="menu_helpdesk" name="Ticket Dashboard"-->
<!-- action="helpdesk_dashboard_action" sequence="1"/>-->
<menuitem id="helpdesk_management" parent="menu_helpdesk" name="Tickets"
action="action_helpdesk" sequence="2"/>
<menuitem id="helpdesk_tickets" parent="helpdesk_management" name="Helpdesk Tickets"
action="action_helpdesk" sequence="1"/>
<menuitem id="helpdesk_tickets_my" parent="helpdesk_management" name="My Tickets"
action="action_helpdesk_my" sequence="1"/>
<menuitem id="helpdesk_tickets" parent="helpdesk_management" name="All Tickets"
action="action_helpdesk" sequence="2" groups="odoo_website_helpdesk.helpdesk_manager"/>
<menuitem id="menu_helpdesk_team" name="Helpdesk Team"
action="action_helpdesk_team"
@ -45,14 +95,36 @@
<menuitem id="menu_helpdesk_configuration" name="Configuration"
sequence="50" parent="menu_helpdesk"/>
<menuitem id="menu_helpdesk_team" name="Helpdesk Team"
action="action_helpdesk_team"
parent="menu_helpdesk_configuration" sequence="10"/>
<menuitem id="menu_helpdesk_categories" name="Categories"
action="action_helpdesk_categories"
groups="odoo_website_helpdesk.group_show_category"
parent="menu_helpdesk_configuration" sequence="10"/>
<menuitem id="menu_helpdesk_settings" name="Settings"
action="action_helpdesk_general_settings"
parent="menu_helpdesk_configuration" sequence="1"/>
<menuitem id="menu_helpdesk_team" name="Teams"
action="action_helpdesk_team"
parent="menu_helpdesk_configuration" sequence="3"/>
<menuitem id="menu_helpdesk_tag" name="Tags"
action="action_helpdesk_tag"
parent="menu_helpdesk_configuration" sequence="4"/>
<menuitem id="menu_helpdesk_stage" name="Stages"
action="action_helpdesk_stage"
parent="menu_helpdesk_configuration" sequence="5"/>
<menuitem id="menu_helpdesk_types" name="Types"
action="action_helpdesk_types"
parent="menu_helpdesk_configuration" sequence="6"/>
<menuitem id="report_helpdesk" name="Report" parent="menu_helpdesk" sequence="3"
action="action_report_helpdesk"/>
</data>
</odoo>

211
odoo_website_helpdesk/views/portal.xml

@ -3,15 +3,12 @@
name="Portal layout : upcoming tickets"
inherit_id="portal.portal_breadcrumbs" priority="30">
<xpath expr="//ol[hasclass('o_portal_submenu')]" position="inside">
<li t-if="page_name == 'ticket'"
t-attf-class="breadcrumb-item #{'active ' if not ticket else ''}">
<a t-if="ticket" t-attf-href="/my/tickets?{{ keep_query() }}">
Tickets
</a>
<t t-else="">HelpDesk Tickets</t>
<li t-if="page_name == 'ticket'">
<a t-if="ticket" t-attf-href="/my/tickets">/ Helpdesk Tickets</a>
<t t-else="">/ Helpdesk Tickets</t>
</li>
<li t-if="ticket" class="breadcrumb-item active">
<t t-esc="ticket.name" t-if="ticket.name != '/'"/>
/ <t t-esc="details['display_name']"/>
</li>
</xpath>
</template>
@ -29,13 +26,19 @@
</template>
<template id="portal_my_tickets" name="My Tickets">
<t t-call="portal.portal_layout">
<t t-set="breadcrumbs_searchbar" t-value="True"/>
<div>
<t t-call="portal.portal_layout">
<t t-set="breadcrumbs_searchbar" t-value="True"/>
<t t-call="portal.portal_searchbar">
<t t-set="title">My Tickets</t>
<t t-call="portal.portal_searchbar">
<t t-set="title">My Tickets</t>
</t>
<t t-call="odoo_website_helpdesk.ticket_table"/>
</t>
</div>
</template>
<template id="ticket_table">
<div class="search_ticket">
<t t-if="tickets" t-call="portal.portal_table">
<thead>
<tr class="active">
@ -52,11 +55,11 @@
<t t-foreach="tickets" t-as="ticket">
<tr>
<td id="my_selector">
<a id="popover" href="#">
<a id="popover" t-attf-href="/my/tickets/{{ticket.id}}">
<t t-esc="ticket.name" t-value="ticket.id"/>
</a>
</td>
<td style="display:none;">
<td style="display:none;">
<span t-field="ticket.name"/>
</td>
<td style="display:none;">
@ -92,7 +95,187 @@
<p t-else="">
There are currently no tickets issued for your account.
</p>
</div>
</template>
<template id="portal_ticket_details" name="My Tickets">
<t t-call="portal.portal_layout">
<div class="row mt16 o_portal_sale_sidebar">
<!-- Sidebar -->
<t t-call="portal.portal_record_sidebar">
<t t-set="classes" t-value="'col-lg-auto d-print-none'"/>
<t t-set="title">
<h4 class="mb-0"><t t-esc="details['display_name']"/></h4>
</t>
<t t-set="entries">
<ul class="list-group list-group-flush flex-wrap flex-row flex-lg-column">
<li class="list-group-item d-grid align-content-start">
<a class="btn btn-primary fa fa-download" t-attf-href="/my/tickets/download/{{details.id}}" target="_blank">
Download
</a>
</li>
<li class="list-group-item d-grid align-content-start">
<div class="small mb-1">
<strong class="text-muted">Your Contact</strong>
</div>
<div class="row flex-nowrap">
<div class="col flex-grow-0 pe-2">
<img class="rounded-circle mr4 float-start o_portal_contact_img"
t-att-src="image_data_uri(details['customer_id'].avatar_1024)"
alt="Contact"/>
</div>
<div class="col ps-0" style="min-width: 150px">
<span t-esc="details['customer_id']"
t-options='{"widget": "contact", "fields": ["name", "phone"], "no_marker": True}'/>
</div>
</div>
</li>
</ul>
</t>
</t>
<!-- Page content -->
<div id="helpdesk_content" class="col-12 col-lg justify-content-end">
<div t-attf-class="card #{'pb-5' if report_type == 'html' else ''}" id="portal_doc_content">
<div t-call="odoo_website_helpdesk.helpdesk_content_preview"/>
</div>
<!-- chatter -->
<div id="helpdesk_ticket_communication" class="mt-4">
<h2>History</h2>
<t t-call="portal.message_thread">
<t t-set="object" t-value="details"/>
</t>
</div>
</div>
</div>
</t>
</template>
<template id="helpdesk_content_preview" name="Sales Order Portal Content">
<div id="introduction" t-attf-class="pb-2 pt-3 #{'card-header bg-white' if report_type == 'html' else ''}" style="height:700px;">
<div class="container">
<h4 class="mb-0" style="margin-left:15px;"><b><t t-esc="details['display_name']"/></b></h4>
<hr style="width:100%"/>
</div>
<table class="table table-borderless">
<tr>
<th>Ticket Type</th>
<td><t t-esc="details['ticket_type'].name"/></td>
<th>Create Date</th>
<td><t t-esc="details['create_date']"/></td>
</tr>
<tr>
<th>Last Update Date</th>
<td><t t-esc="details['__last_update']"/></td>
<th>Person Name</th>
<td><t t-esc="details['customer_id'].name"/></td>
</tr>
<tr>
<th>Ticket Subject</th>
<td><t t-esc="details['subject']"/></td>
<th>Email</th>
<td><t t-esc="details['customer_id'].email"/></td>
</tr>
<tr>
<th>Category</th>
<td><t t-esc="details['category_id'].name"/></td>
<th>Replied Date</th>
<td><t t-esc="details['replied_date']"/></td>
</tr>
<tr>
<th>Priority</th>
<td><t t-esc="details['priority']"/></td>
<th>Consultant</th>
<td><t t-esc="details['assigned_user'].name"/></td>
</tr>
<tr>
<th>Status</th>
<td><t t-esc="details['stage_id'].name"/></td>
</tr>
<tr>
<th>Description</th>
</tr>
<tr>
<td colspan="4"><t t-esc="details['description']"/></td>
</tr>
</table>
</div>
</template>
<template id="ticket_group_by_table">
<t t-if="tickets" t-call="portal.portal_table">
<thead>
<tr class="active">
<th>
<span class="d-none d-md-inline">Ticket #</span>
</th>
<th class="text-right">Subject</th>
<th style="display:none;" class="text-right">Priority
</th>
<th class="text-right">Date</th>
<th class="text-right">Stage</th>
</tr>
</thead>
<tbody>
<t t-foreach="tickets" t-as="ticket">
<tr>
<th class="table-light" colspan="4">
<t t-esc="ticket['name']"/>
</th>
</tr>
<t t-foreach="ticket['data']" t-as="ticket">
<t t-foreach="ticket" t-as="data">
<tr>
<td id="my_selector">
<a id="popover" href="#">
<t t-esc="data.name"
t-value="data.id"/>
</a>
</td>
<td style="display:none;">
<span t-field="data.name"/>
</td>
<td style="display:none;">
<span t-field="data.subject"/>
</td>
<td style="display:none;">
<span t-field="data.description"/>
</td>
<td style="display:none;">
<span t-field="data.cost"/>
</td>
<td class="text-right">
<span t-field="data.subject"/>
</td>
<td class="text-right" style="display:none;">
<span t-field="data.priority"/>
</td>
<td class="text-right">
<span t-field="data.create_date"
t-options="{'widget': 'date'}"/>
&amp;nbsp;
<span class="d-none d-md-inline"
t-field="data.create_date"
t-options="{'time_only': True}"/>
</td>
<td class="text-right">
<span t-field="data.stage_id.name"/>
</td>
</tr>
</t>
</t>
</t>
</tbody>
</t>
<p t-else="">There are currently no tickets issued for your
account.
</p>
</template>
</odoo>

16
odoo_website_helpdesk/views/portal_search.xml

@ -0,0 +1,16 @@
<odoo>
<template id="helpdesk_website_inherit"
inherit_id="portal.portal_searchbar">
<xpath expr="//div[@id='o_portal_navbar_content']" position="after">
<div t-if="tickets">
<select id="group_select" class="btn btn-secondary">
<option value="0" style="color:gray;">Group by</option>
<option value="1">Stage</option>
<option value="2">Ticket type</option>
</select>
<input type="text" placeholder="Enter Ticket Number" id="search_box"> </input>
<button type="button" class="btn btn-secondary" id="search_ticket">Search </button>
</div>
</xpath>
</template>
</odoo>

158
odoo_website_helpdesk/views/rating_form.xml

@ -0,0 +1,158 @@
<odoo>
<template id="rating_form" name="Ticket Rating">
<t t-call="website.layout">
<center>
<h4>
<b>Write Review
</b>
</h4>
<form style="display: flex;
justify-content: center;"
t-attf-action="/rating/{{ticket}}/submit"
method="post">
<div class="">
<div class="o_portal_chatter_header">
<div class="row o_website_rating_card_container justify-content-center">
<div class="col-lg-5">
<div class="starRating"
id="star">
<div>
<div>
<div>
<div>
<input class="starRating "
id="rating11"
type="radio"
name="rating"
value="1"
checked="checked">
<label for="rating11">
<span>
1
</span>
</label>
</input>
</div>
<input id="rating12"
type="radio"
name="rating"
value="2">
<label for="rating12">
<span>
2
</span>
</label>
</input>
</div>
<input id="rating13"
type="radio"
name="rating"
value="3">
<label for="rating13">
<span>
3
</span>
</label>
</input>
</div>
<input id="rating14"
type="radio"
name="rating"
value="4">
<label for="rating14">
<span>
4
</span>
</label>
</input>
</div>
<input id="rating15"
type="radio"
name="rating"
value="5">
<label for="rating15">
</label>
</input>
</div>
</div>
<div class="o_portal_chatter_composer_body mb32">
<label>Your
Review
</label>
<textarea id="msg"
rows="4"
name="message"
class="form-control"
style="width: 365px;"
placeholder="Write a message..."
required="required"/>
<div class="o_portal_chatter_attachments mt-3"/>
<button type="submit"
id="post"
class="btn btn-primary mt8 a-submit">
Post
Your
Review
</button>
</div>
</div>
</div>
<div class="o_portal_chatter_composer"/>
</div>
</form>
</center>
</t>
</template>
<template id="rating_thanks" name="Thanks Rating">
<t t-call="website.layout">
<div id="wrap" class="oe_structure oe_empty">
<section class="s_text_block pt40 pb40 o_colored_level "
data-snippet="s_text_block">
<div class="container s_allow_columns">
<div class="row">
<div class="col-lg-7 col-xl-6 mr-lg-auto">
<span class="d-block fa fa-4x fa-handshake-o mx-auto rounded-circle bg-primary"/>
<br/>
<h1 class="text-center">Thank You!</h1>
<div class="pb16 pt16 s_hr"
data-snippet="s_hr"
data-name="Separator">
<hr class="mx-auto border-top w-50 border-dark text-center"/>
</div>
<p class="text-center">We will get back
to you shortly.
</p>
</div>
<div class="col-lg-4">
<ul class="list-unstyled mb-0 pl-2">
<li>My Company</li>
<li>
<i class="fa fa-map-marker fa-fw mr-2"/>
<span class="o_force_ltr">3575
Demo Buena Vista Avenue
</span>
</li>
<li>
<i class="fa fa-phone fa-fw mr-2"/>
<span class="o_force_ltr">+1
(650) 555-0111
</span>
</li>
<li>
<i class="fa fa-1x fa-fw fa-envelope mr-2"/>
<span>
info@yourcompany.example.com
</span>
</li>
</ul>
</div>
</div>
</div>
</section>
</div>
</t>
</template>
</odoo>

7
odoo_website_helpdesk/views/report.xml

@ -22,6 +22,9 @@
<th class="text-center">
<span>Priority :</span>
</th>
<th class="text-center">
<span>Products :</span>
</th>
</tr>
</thead>
<tbody>
@ -36,6 +39,9 @@
<td>
<h3 t-field="o.priority"/>
</td>
<td>
<h3 t-field="o.product_id"/>
</td>
</tr>
</tbody>
</table>
@ -102,6 +108,7 @@
<field name="report_name">odoo_website_helpdesk.report_help_ticket</field>
<field name="report_file">odoo_website_helpdesk.report_help_ticket</field>
<field name="binding_model_id" ref="model_help_ticket"/>
<field name="binding_view_types"/>
<field name="binding_type">report</field>
</record>
</odoo>

86
odoo_website_helpdesk/views/res_config_settings.xml

@ -1,12 +1,14 @@
<odoo>
<record id="ticket_res_config_settings_view_form" model="ir.ui.view">
<field name="name">res.config.settings.view.form.inherit.helpdesk</field>
<field name="name">res.config.settings.view.form.inherit.helpdesk
</field>
<field name="model">res.config.settings</field>
<field name="priority" eval="15"/>
<field name="inherit_id" ref="base.res_config_settings_view_form"/>
<field name="arch" type="xml">
<xpath expr="//div[hasclass('settings')]" position="inside">
<div class="app_settings_block" data-string="Helpdesk" string="Helpdesk" data-key="helpdesk_ticket">
<div class="app_settings_block" data-string="Helpdesk"
string="Helpdesk" data-key="helpdesk_ticket">
<h2>Helpdesk</h2>
<div class="row mt16 o_settings_container">
<div class="col-lg-6 o_setting_box">
@ -15,8 +17,84 @@
</div>
<div class="o_setting_right_pane">
<label for="show_create_task"/>
<div class="text-muted">Create tasks from tickets</div>
</div>
</div>
</div>
<div groups="odoo_website_helpdesk.helpdesk_manager">
<h2>Ticket Settings</h2>
<div class="row mt16 o_settings_container">
<div class="col-lg-6 o_setting_box">
<div class="o_setting_left_pane">
<field name="show_category"/>
</div>
<div class="o_setting_right_pane">
<label for="show_category" string="Category"/>
<div class="text-muted">Categorize the Tickets</div>
</div>
</div>
</div>
<div class="row mt16 o_settings_container">
<div class="col-lg-6 o_setting_box">
<div class="o_setting_left_pane">
<field name="helpdesk_menu_show"/>
</div>
<div class="o_setting_right_pane">
<label for="helpdesk_menu_show"/>
<div class="text-muted">Create Ticket From Website</div>
</div>
</div>
<div class="col-lg-6 o_setting_box">
<div class="o_setting_left_pane">
<field name="product_website"/>
</div>
<div class="o_setting_right_pane">
<label for="product_website"/>
<div class="text-muted">Choose Products on Website Form</div>
</div>
</div>
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_left_pane">
<field name="auto_close_ticket"/>
</div>
<div class="o_setting_right_pane">
<label for="auto_close_ticket"/>
<div class="text-muted">Automatically Close Ticket</div>
<br/>
<label for="no_of_days"
attrs="{'invisible': [('auto_close_ticket','=', False)]}"/>
<field name="no_of_days"
attrs="{'invisible': [('auto_close_ticket','=', False)]}"/>
</div>
</div>
</div>
</div>
<h2>Stages</h2>
<div class="row mt16 o_settings_container">
<div class="col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<label for="closed_stage" string="Close Stage"/>
<div class="text-muted">
Enable to create tasks from tickets
Set The Closing stage
</div>
<div class="content-group">
<div class="mt16">
<field name="closed_stage"/>
</div>
</div>
</div>
</div>
<div class="col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<label for="reply_template_id" string="Reply Template"/>
<div class="text-muted">
Seat a Default Reply Template
</div>
<div class="content-group">
<div class="mt16">
<field name="reply_template_id"/>
</div>
</div>
</div>
</div>
@ -25,4 +103,4 @@
</xpath>
</field>
</record>
</odoo>
</odoo>

62
odoo_website_helpdesk/views/team.xml

@ -5,32 +5,41 @@
<field name="arch" type="xml">
<form>
<sheet>
<div class="oe_title">
<label for="name" class="oe_edit_only"/>
<h1>
<field name="name"/>
</h1>
</div>
<group>
<field name="member_ids" widget="many2many_tags"/>
<field name="email"/>
<field name="project_id"/>
</group><br/>
<h3>Tasks</h3>
<div class="row mt16 o_settings_container" id="create_task">
<div class="col-lg-6 o_setting_box">
<div class="o_setting_left_pane">
<field name="create_task"/>
</div>
<div class="o_setting_right_pane">
<label for="create_task"/>
<div class="text-muted">
Enable for allowing team to create tasks from tickets
</div>
</div>
</div>
</div>
<group>
<field name="name"/>
</group>
<group>
<field name="team_lead_id"/>
<field name="project_id"/>
</group>
</group>
<notebook>
<page string="Members">
<field name="member_ids" mode="kanban">
<kanban>
<field name="image_1920"/>
<field name="name"/>
<templates>
<t t-name="kanban-box">
<div t-attf-class="oe_kanban_global_click">
<div class="o_kanban_image">
<field name="image_1920" widget='image' class="oe_avatar"/>
</div>
<div class="oe_kanban_details ml8">
<div class="o_kanban_record_headings">
<strong>
<field name="name"/>
</strong>
</div>
</div>
</div>
</t>
</templates>
</kanban>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
@ -42,8 +51,7 @@
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="email"/>
<field name="project_id"/>
<field name="team_lead_id"/>
</tree>
</field>
</record>

225
odoo_website_helpdesk/views/website_form.xml

@ -34,7 +34,7 @@
<h5 class="text-center">
<span class="fa fa-check-circle"/>
<span>Your Ticket
<a t-attf-href="/my_ticket/#{request.session.ticket_id}">
<a t-attf-href="/my/tickets/#{request.session.ticket_id}">
<strong>
<t t-esc="request.session.ticket_number"/>
</strong>
@ -112,10 +112,13 @@
<div class="col-lg-8 mt-4 mt-lg-0">
<h5 style="line-height: 1.6;">
Contact us about anything related to our
company or services.<br/>
We'll do our best to get back to you as soon
company or services.
<br/>
We'll do our best to get back to you as
soon
as possible.
</h5><br/>
</h5>
<br/>
<section class="s_website_form" data-vcss="001"
data-snippet="s_website_form">
<div class="container">
@ -138,9 +141,11 @@
style="width: 200px"
for="contact1">
<span class="s_website_form_label_content">
Name</span>
Name
</span>
<span class="s_website_form_mark">
*</span>
*
</span>
</label>
<div class="col-sm">
<input id="contact1"
@ -150,7 +155,8 @@
required=""
data-fill-with="name"/>
</div>
</div><br/>
</div>
<br/>
</div>
<div class="form-group col-12 s_website_form_field s_website_form_custom"
data-type="char"
@ -160,7 +166,8 @@
style="width: 200px"
for="contact2">
<span class="s_website_form_label_content">
Phone </span>
Phone
</span>
</label>
<div class="col-sm">
<input id="contact2"
@ -169,7 +176,8 @@
name="phone"
data-fill-with="phone"/>
</div>
</div><br/>
</div>
<br/>
</div>
<div class="form-group col-12 s_website_form_field s_website_form_required"
data-type="email"
@ -179,9 +187,11 @@
style="width: 200px"
for="contact3">
<span class="s_website_form_label_content">
Email</span>
Email
</span>
<span class="s_website_form_mark">
*</span>
*
</span>
</label>
<div class="col-sm">
<input id="contact3"
@ -191,7 +201,8 @@
required=""
data-fill-with="email"/>
</div>
</div><br/>
</div>
<br/>
</div>
<div class="form-group col-12 s_website_form_field s_website_form_custom"
data-type="char"
@ -201,7 +212,8 @@
style="width: 200px"
for="contact4">
<span class="s_website_form_label_content">
Company</span>
Company
</span>
</label>
<div class="col-sm">
<input id="contact4"
@ -210,8 +222,96 @@
name="company"
data-fill-with="commercial_company_name"/>
</div>
</div>
<br/>
</div>
<div class="form-group col-12 s_website_form_field s_website_form_custom"
data-type="char"
data-name="Field">
<div class="row s_col_no_resize s_col_no_bgcolor">
<label class="col-form-label col-sm-auto s_website_form_label"
style="width: 200px"
for="contact53">
<span class="s_website_form_label_content">
Ticket type
</span>
<span class="s_website_form_mark">
*
</span>
</label>
<div class="col-sm">
<select name="ticket_type" id="contact53"
t-attf-class="form-control s_website_form_input"
required="1">
<t t-foreach="types or []"
t-as="p">
<option t-att-value="p.id">
<t t-esc="p.name"/>
</option>
</t>
</select>
</div>
</div><br/>
</div>
<div class="form-group col-12 s_website_form_field s_website_form_required"
data-type="char"
data-name="Field">
<div class="row s_col_no_resize s_col_no_bgcolor">
<label class="col-form-label col-sm-auto s_website_form_label"
style="width: 200px"
for="contact51">
<span class="s_website_form_label_content">
Category
</span>
<span class="s_website_form_mark">
*
</span>
</label>
<div class="col-sm">
<select name="category" id="contact51"
t-attf-class="form-control s_website_form_input"
required="1">
<t t-foreach="categories or []"
t-as="c">
<option t-att-value="c.id">
<t t-esc="c.name"/>
</option>
</t>
</select>
</div>
</div><br/>
</div>
<t t-set="product" t-value="request.env['ir.config_parameter'].sudo().get_param('odoo_website_helpdesk.product_website')"/>
<t t-if="product">
<div class="form-group col-12 s_website_form_field s_website_form_custom s_website_form_required"
data-type="text"
data-name="Field">
<div class="row s_col_no_resize s_col_no_bgcolor">
<label class="col-form-label col-sm-auto s_website_form_label"
style="width: 200px"
for="contact52">
<span class="s_website_form_label_content">
Products
</span>
</label>
<div class="col-sm">
<select id="product"
name="product"
multiple="multiple">
<option value="0"
selected="true">
Choose
Products
</option>
</select>
</div>
</div>
<br/>
</div>
</t>
<div class="form-group col-12 s_website_form_field s_website_form_required"
data-type="char"
data-name="Field">
@ -220,20 +320,25 @@
style="width: 200px"
for="contact5">
<span class="s_website_form_label_content">
Subject</span>
Subject
</span>
<span class="s_website_form_mark">
*</span>
*
</span>
</label>
<div class="col-sm">
<input id="contact5"
type="text" placeholder="Mention your Issue here"
type="text"
placeholder="Mention your Issue here"
class="form-control s_website_form_input"
name="subject"
required=""/>
</div>
</div><br/>
</div>
<br/>
</div>
<div class="form-group col-12 s_website_form_field s_website_form_custom s_website_form_required"
<div id="ticket_disc"
class="form-group col-12 s_website_form_field s_website_form_custom s_website_form_required"
data-type="text"
data-name="Field">
<div class="row s_col_no_resize s_col_no_bgcolor">
@ -241,47 +346,56 @@
style="width: 200px"
for="contact6">
<span class="s_website_form_label_content">
Description</span>
Description
</span>
</label>
<div class="col-sm">
<textarea
id="contact6"
class="form-control s_website_form_input"
name="description" placeholder="Issue description in detail"
name="description"
placeholder="Issue description in detail"
required=""></textarea>
</div>
</div><br/>
</div>
<br/>
</div>
<div class="form-group col-12 s_website_form_field s_website_form_custom s_website_form_required"
data-type="text"
data-name="Field">
<div class="row s_col_no_resize s_col_no_bgcolor">
<label class="col-form-label col-sm-auto s_website_form_label"
style="width: 200px">
<span class="s_website_form_label_content">
Priority</span>
</label>
<div class="col-sm">
<!-- <div class="row s_col_no_resize s_col_no_bgcolor">-->
<!-- <label class="col-form-label col-sm-auto s_website_form_label"-->
<!-- style="width: 200px">-->
<!-- <span class="s_website_form_label_content">-->
<!-- Priority-->
<!-- </span>-->
<!-- </label>-->
<!-- <div class="col-sm">-->
<select id="priority"
name="priority"
required=""
class="form-control s_website_form_input">
<option value="0"
selected="selected">
Very
Low</option>
<option value="1">
Low</option>
<option value="2">
Normal</option>
<option value="3">
High</option>
</select>
</div>
</div><br/>
<!-- <select id="priority"-->
<!-- name="priority"-->
<!-- required=""-->
<!-- class="form-control s_website_form_input">-->
<!-- <option value="0"-->
<!-- selected="selected">-->
<!-- Very-->
<!-- Low-->
<!-- </option>-->
<!-- <option value="1">-->
<!-- Low-->
<!-- </option>-->
<!-- <option value="2">-->
<!-- Normal-->
<!-- </option>-->
<!-- <option value="3">-->
<!-- High-->
<!-- </option>-->
<!-- </select>-->
<!-- </div>-->
<!-- </div>-->
<br/>
</div>
<div class="form-group col-12 s_website_form_field s_website_form_custom s_website_form_required"
data-type="binary"
@ -291,14 +405,16 @@
style="width: 200px"
for="contact6">
<span class="s_website_form_label_content">
Attachment</span>
Attachment
</span>
</label>
<div class="col-sm">
<input type="file"
name="ticket_attachment"
multiple="true"/>
</div>
</div><br/>
</div>
<br/>
</div>
<div class="form-group col-12 s_website_form_field s_website_form_dnone">
<div class="row s_col_no_resize s_col_no_bgcolor">
@ -306,7 +422,8 @@
style="width: 200px"
for="contact7">
<span class="s_website_form_label_content">
Email To</span>
Email To
</span>
</label>
<div class="col-sm">
<input id="contact7"
@ -322,7 +439,8 @@
class="s_website_form_label"/>
<a href="#" role="button"
class="btn btn-primary btn-lg s_website_form_send">
Submit</a>
Submit
</a>
<span id="s_website_form_result"></span>
</div>
</div>
@ -337,17 +455,20 @@
<i class="fa fa-map-marker fa-fw mr-2"/>
<span class="o_force_ltr">3575 Demo
Buena
Vista Avenue</span>
Vista Avenue
</span>
</li>
<li>
<i class="fa fa-phone fa-fw mr-2"/>
<span class="o_force_ltr">+1 (650)
555-0111</span>
555-0111
</span>
</li>
<li>
<i class="fa fa-1x fa-fw fa-envelope mr-2"/>
<span>
info@yourcompany.example.com</span>
info@yourcompany.example.com
</span>
</li>
</ul>
</div>

Loading…
Cancel
Save