Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
taskonsite-архив-перенесен
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Packages
Packages
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Dmitry Korolev
taskonsite-архив-перенесен
Commits
de4b99aa
Commit
de4b99aa
authored
Apr 28, 2016
by
Shakarim Sapa
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- Изменили логику подписки
parent
e689c350
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
43 additions
and
88 deletions
+43
-88
common/modules/cases/controllers/DefaultController.php
common/modules/cases/controllers/DefaultController.php
+14
-8
frontend/views/layouts/block/case-subscribe.php
frontend/views/layouts/block/case-subscribe.php
+29
-80
No files found.
common/modules/cases/controllers/DefaultController.php
View file @
de4b99aa
...
@@ -5,6 +5,7 @@ namespace common\modules\cases\controllers;
...
@@ -5,6 +5,7 @@ namespace common\modules\cases\controllers;
use
Yii
;
use
Yii
;
use
common\components\BaseController
;
use
common\components\BaseController
;
use
common\modules\cases\models\CasesBids
;
use
common\modules\cases\models\CasesBids
;
use
yii\helpers\Json
;
use
yii\web\NotFoundHttpException
;
use
yii\web\NotFoundHttpException
;
use
yii\web\Response
;
use
yii\web\Response
;
use
yii\widgets\ActiveForm
;
use
yii\widgets\ActiveForm
;
...
@@ -31,20 +32,24 @@ class DefaultController extends BaseController
...
@@ -31,20 +32,24 @@ class DefaultController extends BaseController
}
}
/**
/**
* @return array
* @param $email
* @throws NotFoundHttpException
* @throws \yii\web\NotFoundHttpException
* @throws \Exception
*/
*/
public
function
actionAdd
(){
public
function
actionAdd
(
$email
){
Yii
::
$app
->
response
->
format
=
Response
::
FORMAT_JSON
;
Yii
::
$app
->
response
->
format
=
Response
::
FORMAT_JSON
;
// Получили дату
// Получили дату
$date
=
new
\DateTime
();
$date
=
new
\DateTime
();
// Создали модель
// Создали модель
$model
=
new
CasesBids
();
$model
=
new
CasesBids
();
// Результирующий массив
$result
=
[
'result'
=>
false
];
// Получили и переопределили данные из формы
// Получили и переопределили данные из формы
if
(
Yii
::
$app
->
request
->
isAjax
&&
$model
->
load
(
Yii
::
$app
->
request
->
post
())
)
{
if
(
Yii
::
$app
->
request
->
isAjax
)
{
// Переопределили дату
// Переопределили дату
$model
->
date
=
$date
->
format
(
'Y-m-d H:i:s'
);
$model
->
date
=
$date
->
format
(
'Y-m-d H:i:s'
);
$model
->
email
=
$email
;
// Открыли транзакцию
// Открыли транзакцию
$transaction
=
Yii
::
$app
->
db
->
beginTransaction
();
$transaction
=
Yii
::
$app
->
db
->
beginTransaction
();
// Пытаемся сохранить запись в базе
// Пытаемся сохранить запись в базе
...
@@ -54,16 +59,17 @@ class DefaultController extends BaseController
...
@@ -54,16 +59,17 @@ class DefaultController extends BaseController
// Коммитим транзакцию
// Коммитим транзакцию
$transaction
->
commit
();
$transaction
->
commit
();
// Возвращаем результат
// Возвращаем результат
return
[
'success'
=>
true
]
;
$result
[
'result'
]
=
true
;
}
else
{
}
else
{
// В противном случае возвращаем форму с ошибками
// В противном случае возвращаем форму с ошибками
return
ActiveForm
::
validate
(
$model
);
$result
[
'error'
]
=
current
(
current
(
$model
->
getErrors
())
);
}
}
}
catch
(
\Exception
$e
)
{
}
catch
(
\Exception
$e
)
{
// Обрабатываем исключение
// Обрабатываем исключение
$transaction
->
rollBack
();
$transaction
->
rollBack
();
throw
$e
;
$result
[
'error'
]
=
$e
->
getMessage
()
;
}
}
echo
Json
::
encode
(
$result
);
}
else
{
}
else
{
// Если это не ajax запрос, возвращаем ошибку
// Если это не ajax запрос, возвращаем ошибку
throw
new
NotFoundHttpException
(
'The requested page does not exist.'
);
throw
new
NotFoundHttpException
(
'The requested page does not exist.'
);
...
...
frontend/views/layouts/block/case-subscribe.php
View file @
de4b99aa
...
@@ -42,10 +42,10 @@ if ($cacheEmail!==false && CasesBids::find()->where(['email' => $cacheEmail])->e
...
@@ -42,10 +42,10 @@ if ($cacheEmail!==false && CasesBids::find()->where(['email' => $cacheEmail])->e
'template'
=>
'<div class="row"><div class="col-sm-4">{input}</div></div>'
,
'template'
=>
'<div class="row"><div class="col-sm-4">{input}</div></div>'
,
'errorOptions'
=>
[]
'errorOptions'
=>
[]
])
->
textInput
([
])
->
textInput
([
'placeholder'
=>
'E-mail*'
'placeholder'
=>
'E-mail*'
,
]);
?>
]);
?>
<?php
echo
Html
::
submitB
utton
(
\Yii
::
t
(
'form'
,
'Subscribe'
),
[
'class'
=>
'save-button'
]);
?>
<?php
echo
Html
::
b
utton
(
\Yii
::
t
(
'form'
,
'Subscribe'
),
[
'class'
=>
'save-button'
]);
?>
</div>
</div>
...
@@ -55,86 +55,35 @@ if ($cacheEmail!==false && CasesBids::find()->where(['email' => $cacheEmail])->e
...
@@ -55,86 +55,35 @@ if ($cacheEmail!==false && CasesBids::find()->where(['email' => $cacheEmail])->e
</div>
</div>
<script
type=
'text/javascript'
>
<script
type=
'text/javascript'
>
$
(
'
form.keys_mail_form
'
).
on
(
'
beforeSubmit
'
,
function
(
e
)
{
$
(
'
.save-button
'
).
on
(
'
click
'
,
function
()
{
var
form
=
$
(
this
),
xhr
=
new
XMLHttpRequest
,
filebool
=
false
,
file
,
data
=
new
FormData
();
var
form
=
$
(
this
).
closest
(
'
form
'
);
var
email
=
form
.
children
(
'
input[name="CasesBids[email]"]
'
).
val
();
form
.
find
(
'
input, textarea
'
).
each
(
function
(){
$
.
ajax
({
data
.
append
(
$
(
this
).
attr
(
'
name
'
),
$
(
this
).
val
());
url
:
form
.
attr
(
'
action
'
),
});
data
:
{
email
:
email
xhr
.
open
(
"
POST
"
,
form
.
attr
(
'
action
'
),
true
);
},
xhr
.
setRequestHeader
(
"
X-Requested-With
"
,
"
XMLHttpRequest
"
);
method
:
'
GET
'
,
success
:
function
(
response
)
{
xhr
.
send
(
data
);
var
result
=
JSON
.
parse
(
response
);
if
(
result
.
result
==
true
)
{
xhr
.
onreadystatechange
=
function
()
form
.
find
(
'
.message-box.send_secce
'
).
fadeIn
(
'
fast
'
);
{
form
.
find
(
'
.content
'
).
css
(
'
visibility
'
,
'
hidden
'
);
if
(
xhr
.
readyState
==
4
){
try
{
setTimeout
(
function
(){
var
response
=
JSON
.
parse
(
xhr
.
responseText
);
form
.
find
(
'
.message-box.send_secce
'
).
fadeOut
(
'
fast
'
);
}
catch
(
e
)
{
form
.
find
(
'
.content
'
).
css
(
'
visibility
'
,
'
visible
'
);
var
response
=
xhr
.
responseText
;
},
2000
);
}
}
else
{
form
.
find
(
'
.message-box.send_err
'
).
html
(
result
.
error
);
form
.
find
(
'
.has-error
'
).
removeClass
(
'
has-error
'
);
form
.
find
(
'
.message-box.send_err
'
).
fadeIn
(
'
fast
'
);
if
(
response
.
success
)
{
setTimeout
(
function
(){
if
(
form
.
find
(
'
.message-box.send_secce
'
).
length
>
0
)
{
form
.
find
(
'
.message-box.send_err
'
).
fadeOut
(
'
fast
'
);
form
.
find
(
'
.message-box.send_secce
'
).
fadeIn
(
'
fast
'
);
},
2000
);
form
.
find
(
'
.content
'
).
css
(
'
visibility
'
,
'
hidden
'
);
setTimeout
(
function
(){
form
.
find
(
'
.message-box.send_secce
'
).
fadeOut
(
'
fast
'
);
form
.
find
(
'
.content
'
).
css
(
'
visibility
'
,
'
visible
'
);
},
2000
);
}
form
.
find
(
'
input:not(.not_clear), textarea
'
).
val
(
''
);
form
.
find
(
'
#files-zone
'
).
html
(
''
);
$
(
'
.dz-preview.dz-processing
'
).
remove
();
dataLayer
.
push
({
'
event
'
:
'
UA_event
'
,
'
Catagory
'
:
form
.
data
(
'
tag
'
),
'
Action
'
:
form
.
data
(
'
title
'
),
'
Label
'
:
'
Успешно
'
});
setInterval
(
function
()
{
form
.
parent
(
'
div
'
).
fadeOut
(
500
);
},
1600
);
}
else
{
var
errors
=
[];
$
.
each
(
response
,
function
(
key
,
value
)
{
form
.
find
(
'
.field-
'
+
key
).
addClass
(
'
has-error
'
);
errors
=
errors
.
concat
(
value
);
});
console
.
log
(
errors
);
if
(
form
.
find
(
'
.message-box.send_err
'
).
length
>
0
)
{
form
.
find
(
'
.message-box.send_err
'
).
html
(
errors
[
0
]);
form
.
find
(
'
.message-box.send_err
'
).
fadeIn
(
'
fast
'
);
setTimeout
(
function
(){
form
.
find
(
'
.message-box.send_err
'
).
fadeOut
(
'
fast
'
);
},
2000
);
}
dataLayer
.
push
({
'
event
'
:
'
UA_event
'
,
'
Catagory
'
:
'
Ошибки
'
,
'
Action
'
:
form
.
data
(
'
form
'
),
'
Label
'
:
errors
});
}
}
}
}
}
});
}).
on
(
'
submit
'
,
function
(
e
){
return
false
;
});
});
</script>
</script>
<?php
endif
;
?>
<?php
endif
;
?>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment