Added support for admin form preview also for admins if feature is disabled.
This commit is contained in:
parent
0c4bf9f5ca
commit
57a7e25cf1
4 changed files with 130 additions and 39 deletions
|
@ -48,6 +48,7 @@ class App.ChannelForm extends App.ControllerSubContent
|
|||
@$('.js-modal-params').html(paramString)
|
||||
|
||||
# rebuild preview
|
||||
params.test = true
|
||||
if params.modal
|
||||
@$('.js-formInline').addClass('hide')
|
||||
@$('.js-formBtn').removeClass('hide')
|
||||
|
|
|
@ -16,6 +16,10 @@ class FormController < ApplicationController
|
|||
endpoint: endpoint,
|
||||
}
|
||||
|
||||
if params[:test] && current_user && current_user.permissions?('admin.channel_formular')
|
||||
config[:enabled] = true
|
||||
end
|
||||
|
||||
render json: config, status: :ok
|
||||
end
|
||||
|
||||
|
@ -115,6 +119,7 @@ class FormController < ApplicationController
|
|||
private
|
||||
|
||||
def enabled?
|
||||
return true if params[:test] && current_user && current_user.permissions?('admin.channel_formular')
|
||||
return true if Setting.get('form_ticket_create')
|
||||
response_access_deny
|
||||
false
|
||||
|
|
|
@ -105,7 +105,8 @@ $(function() {
|
|||
}
|
||||
|
||||
Plugin.prototype.init = function () {
|
||||
var _this = this
|
||||
var _this = this,
|
||||
params = {}
|
||||
|
||||
_this.log('debug', 'init', this._src)
|
||||
|
||||
|
@ -117,8 +118,12 @@ $(function() {
|
|||
_this.log('debug', 'endpoint_submit: ' + _this.endpoint_submit)
|
||||
|
||||
// load config
|
||||
if (this.options.test) {
|
||||
params.test = true
|
||||
}
|
||||
$.ajax({
|
||||
url: _this.endpoint_config,
|
||||
data: params
|
||||
}).done(function(data) {
|
||||
_this.log('debug', 'config:', data)
|
||||
_this._config = data
|
||||
|
@ -209,13 +214,17 @@ $(function() {
|
|||
var _this = this,
|
||||
params = {}
|
||||
|
||||
$.each( _this.$form.serializeArray(), function( index, item ) {
|
||||
$.each( _this.$form.serializeArray(), function(index, item) {
|
||||
params[item.name] = item.value
|
||||
})
|
||||
|
||||
if (!params.title) {
|
||||
params.title = this.options.messageTitle
|
||||
}
|
||||
|
||||
if (this.options.test) {
|
||||
params.test = true
|
||||
}
|
||||
_this.log('debug', 'params', params)
|
||||
return params
|
||||
}
|
||||
|
|
|
@ -30,6 +30,82 @@ class FormTest < TestCase
|
|||
type: 'off',
|
||||
)
|
||||
|
||||
# admin preview test
|
||||
sleep 1
|
||||
click(
|
||||
browser: agent,
|
||||
css: '.content.active .js-formBtn',
|
||||
)
|
||||
|
||||
sleep 10
|
||||
set(
|
||||
browser: agent,
|
||||
css: 'body div.zammad-form-modal [name="name"]',
|
||||
value: 'some sender',
|
||||
)
|
||||
set(
|
||||
browser: agent,
|
||||
css: 'body div.zammad-form-modal [name="body"]',
|
||||
value: '',
|
||||
)
|
||||
click(
|
||||
browser: agent,
|
||||
css: 'body div.zammad-form-modal button[type="submit"]',
|
||||
)
|
||||
exists(
|
||||
browser: agent,
|
||||
css: 'body div.zammad-form-modal .has-error [name="body"]',
|
||||
)
|
||||
set(
|
||||
browser: agent,
|
||||
css: 'body div.zammad-form-modal [name="body"]',
|
||||
value: 'new body',
|
||||
)
|
||||
set(
|
||||
browser: agent,
|
||||
css: 'body div.zammad-form-modal [name="email"]',
|
||||
value: 'somebody@notexistinginanydomainspacealsonothere.nowhere',
|
||||
)
|
||||
click(
|
||||
browser: agent,
|
||||
css: 'body div.zammad-form-modal button[type="submit"]',
|
||||
)
|
||||
exists(
|
||||
browser: agent,
|
||||
css: 'body div.zammad-form-modal .has-error [name="email"]',
|
||||
)
|
||||
set(
|
||||
browser: agent,
|
||||
css: 'body div.zammad-form-modal [name="email"]',
|
||||
value: 'notexistinginanydomainspacealsonothere@znuny.com',
|
||||
)
|
||||
click(
|
||||
browser: agent,
|
||||
css: 'body div.zammad-form-modal button[type="submit"]',
|
||||
)
|
||||
exists(
|
||||
browser: agent,
|
||||
css: 'body div.zammad-form-modal .has-error [name="email"]',
|
||||
)
|
||||
set(
|
||||
browser: agent,
|
||||
css: 'body div.zammad-form-modal [name="email"]',
|
||||
value: 'discard@znuny.com',
|
||||
)
|
||||
click(
|
||||
browser: agent,
|
||||
css: 'body div.zammad-form-modal button[type="submit"]',
|
||||
)
|
||||
watch_for(
|
||||
browser: agent,
|
||||
css: 'body div.zammad-form-modal',
|
||||
value: 'Thank you for your inquiry',
|
||||
)
|
||||
# click on backgroud (not on thank you dialog)
|
||||
element = agent.find_elements({ css: 'body div.zammad-form-modal' })[0]
|
||||
agent.action.move_to(element, 200, 200).perform
|
||||
agent.action.click.perform
|
||||
|
||||
customer = browser_instance
|
||||
location(
|
||||
browser: customer,
|
||||
|
@ -59,7 +135,7 @@ class FormTest < TestCase
|
|||
|
||||
exists_not(
|
||||
browser: customer,
|
||||
css: 'body div.modal',
|
||||
css: 'body div.zammad-form-modal',
|
||||
)
|
||||
|
||||
# modal dialog
|
||||
|
@ -69,28 +145,28 @@ class FormTest < TestCase
|
|||
)
|
||||
exists(
|
||||
browser: customer,
|
||||
css: 'body div.modal',
|
||||
css: 'body div.zammad-form-modal',
|
||||
)
|
||||
|
||||
# fill form valid data - but too fast
|
||||
set(
|
||||
browser: customer,
|
||||
css: 'body div.modal [name="name"]',
|
||||
css: 'body div.zammad-form-modal [name="name"]',
|
||||
value: 'some name',
|
||||
)
|
||||
set(
|
||||
browser: customer,
|
||||
css: 'body div.modal [name="email"]',
|
||||
css: 'body div.zammad-form-modal [name="email"]',
|
||||
value: 'discard@znuny.com',
|
||||
)
|
||||
set(
|
||||
browser: customer,
|
||||
css: 'body div.modal [name="body"]',
|
||||
css: 'body div.zammad-form-modal [name="body"]',
|
||||
value: "some text\nnew line",
|
||||
)
|
||||
click(
|
||||
browser: customer,
|
||||
css: 'body div.modal button[type="submit"]',
|
||||
css: 'body div.zammad-form-modal button[type="submit"]',
|
||||
)
|
||||
|
||||
# check warning
|
||||
|
@ -101,54 +177,54 @@ class FormTest < TestCase
|
|||
# fill form invalid data - within correct time
|
||||
set(
|
||||
browser: customer,
|
||||
css: 'body div.modal [name="name"]',
|
||||
css: 'body div.zammad-form-modal [name="name"]',
|
||||
value: 'some name',
|
||||
)
|
||||
set(
|
||||
browser: customer,
|
||||
css: 'body div.modal [name="email"]',
|
||||
css: 'body div.zammad-form-modal [name="email"]',
|
||||
value: 'invalid_email',
|
||||
)
|
||||
set(
|
||||
browser: customer,
|
||||
css: 'body div.modal [name="body"]',
|
||||
css: 'body div.zammad-form-modal [name="body"]',
|
||||
value: "some text\nnew line",
|
||||
)
|
||||
click(
|
||||
browser: customer,
|
||||
css: 'body div.modal button[type="submit"]',
|
||||
css: 'body div.zammad-form-modal button[type="submit"]',
|
||||
)
|
||||
sleep 10
|
||||
exists(
|
||||
browser: customer,
|
||||
css: 'body div.modal',
|
||||
css: 'body div.zammad-form-modal',
|
||||
)
|
||||
|
||||
# fill form valid data
|
||||
set(
|
||||
browser: customer,
|
||||
css: 'body div.modal [name="email"]',
|
||||
css: 'body div.zammad-form-modal [name="email"]',
|
||||
value: 'discard@znuny.com',
|
||||
)
|
||||
click(
|
||||
browser: customer,
|
||||
css: 'body div.modal button[type="submit"]',
|
||||
css: 'body div.zammad-form-modal button[type="submit"]',
|
||||
)
|
||||
watch_for(
|
||||
browser: customer,
|
||||
css: 'body div.modal',
|
||||
css: 'body div.zammad-form-modal',
|
||||
value: 'Thank you for your inquiry',
|
||||
)
|
||||
|
||||
# click on backgroud (not on thank you dialog)
|
||||
element = customer.find_elements({ css: 'body div.modal' })[0]
|
||||
element = customer.find_elements({ css: 'body div.zammad-form-modal' })[0]
|
||||
customer.action.move_to(element, 200, 200).perform
|
||||
customer.action.click.perform
|
||||
|
||||
sleep 1
|
||||
exists_not(
|
||||
browser: customer,
|
||||
css: 'body div.modal',
|
||||
css: 'body div.zammad-form-modal',
|
||||
)
|
||||
|
||||
# fill form invalid data - within correct time
|
||||
|
@ -159,100 +235,100 @@ class FormTest < TestCase
|
|||
sleep 10
|
||||
set(
|
||||
browser: customer,
|
||||
css: 'body div.modal [name="name"]',
|
||||
css: 'body div.zammad-form-modal [name="name"]',
|
||||
value: '',
|
||||
)
|
||||
set(
|
||||
browser: customer,
|
||||
css: 'body div.modal [name="email"]',
|
||||
css: 'body div.zammad-form-modal [name="email"]',
|
||||
value: 'discard@znuny.com',
|
||||
)
|
||||
set(
|
||||
browser: customer,
|
||||
css: 'body div.modal [name="body"]',
|
||||
css: 'body div.zammad-form-modal [name="body"]',
|
||||
value: "some text\nnew line",
|
||||
)
|
||||
click(
|
||||
browser: customer,
|
||||
css: 'body div.modal button[type="submit"]',
|
||||
css: 'body div.zammad-form-modal button[type="submit"]',
|
||||
)
|
||||
exists(
|
||||
browser: customer,
|
||||
css: 'body div.modal .has-error [name="name"]',
|
||||
css: 'body div.zammad-form-modal .has-error [name="name"]',
|
||||
)
|
||||
set(
|
||||
browser: customer,
|
||||
css: 'body div.modal [name="name"]',
|
||||
css: 'body div.zammad-form-modal [name="name"]',
|
||||
value: 'some sender',
|
||||
)
|
||||
set(
|
||||
browser: customer,
|
||||
css: 'body div.modal [name="body"]',
|
||||
css: 'body div.zammad-form-modal [name="body"]',
|
||||
value: '',
|
||||
)
|
||||
click(
|
||||
browser: customer,
|
||||
css: 'body div.modal button[type="submit"]',
|
||||
css: 'body div.zammad-form-modal button[type="submit"]',
|
||||
)
|
||||
exists(
|
||||
browser: customer,
|
||||
css: 'body div.modal .has-error [name="body"]',
|
||||
css: 'body div.zammad-form-modal .has-error [name="body"]',
|
||||
)
|
||||
set(
|
||||
browser: customer,
|
||||
css: 'body div.modal [name="body"]',
|
||||
css: 'body div.zammad-form-modal [name="body"]',
|
||||
value: 'new body',
|
||||
)
|
||||
set(
|
||||
browser: customer,
|
||||
css: 'body div.modal [name="email"]',
|
||||
css: 'body div.zammad-form-modal [name="email"]',
|
||||
value: 'somebody@notexistinginanydomainspacealsonothere.nowhere',
|
||||
)
|
||||
click(
|
||||
browser: customer,
|
||||
css: 'body div.modal button[type="submit"]',
|
||||
css: 'body div.zammad-form-modal button[type="submit"]',
|
||||
)
|
||||
exists(
|
||||
browser: customer,
|
||||
css: 'body div.modal .has-error [name="email"]',
|
||||
css: 'body div.zammad-form-modal .has-error [name="email"]',
|
||||
)
|
||||
set(
|
||||
browser: customer,
|
||||
css: 'body div.modal [name="email"]',
|
||||
css: 'body div.zammad-form-modal [name="email"]',
|
||||
value: 'notexistinginanydomainspacealsonothere@znuny.com',
|
||||
)
|
||||
click(
|
||||
browser: customer,
|
||||
css: 'body div.modal button[type="submit"]',
|
||||
css: 'body div.zammad-form-modal button[type="submit"]',
|
||||
)
|
||||
exists(
|
||||
browser: customer,
|
||||
css: 'body div.modal .has-error [name="email"]',
|
||||
css: 'body div.zammad-form-modal .has-error [name="email"]',
|
||||
)
|
||||
set(
|
||||
browser: customer,
|
||||
css: 'body div.modal [name="email"]',
|
||||
css: 'body div.zammad-form-modal [name="email"]',
|
||||
value: 'discard@znuny.com',
|
||||
)
|
||||
click(
|
||||
browser: customer,
|
||||
css: 'body div.modal button[type="submit"]',
|
||||
css: 'body div.zammad-form-modal button[type="submit"]',
|
||||
)
|
||||
watch_for(
|
||||
browser: customer,
|
||||
css: 'body div.modal',
|
||||
css: 'body div.zammad-form-modal',
|
||||
value: 'Thank you for your inquiry',
|
||||
)
|
||||
|
||||
# click on backgroud (not on thank you dialog)
|
||||
element = customer.find_elements({ css: 'body div.modal' })[0]
|
||||
element = customer.find_elements({ css: 'body div.zammad-form-modal' })[0]
|
||||
customer.action.move_to(element, 200, 200).perform
|
||||
customer.action.click.perform
|
||||
|
||||
sleep 1
|
||||
exists_not(
|
||||
browser: customer,
|
||||
css: 'body div.modal',
|
||||
css: 'body div.zammad-form-modal',
|
||||
)
|
||||
|
||||
# inline form
|
||||
|
|
Loading…
Reference in a new issue