2017-07-07 23:44:48 -07:00
@ extends ( 'layouts/default' )
{{ -- Page title -- }}
@ section ( 'title' )
2021-11-19 06:23:48 -08:00
{{ trans ( 'admin/settings/general.slack_title' ) }}
2017-07-07 23:44:48 -07:00
@ parent
@ stop
@ section ( 'header_right' )
2020-04-01 03:21:15 -07:00
< a href = " { { route('settings.index') }} " class = " btn btn-primary " > {{ trans ( 'general.back' ) }} </ a >
2017-07-07 23:44:48 -07:00
@ stop
{{ -- Page content -- }}
@ section ( 'content' )
< style >
. checkbox label {
padding - right : 40 px ;
}
</ style >
2017-10-17 17:18:17 -07:00
{{ Form :: open ([ 'method' => 'POST' , 'files' => false , 'autocomplete' => 'off' , 'class' => 'form-horizontal' , 'role' => 'form' ]) }}
2017-07-07 23:44:48 -07:00
<!-- CSRF Token -->
{{ csrf_field ()}}
< div class = " row " >
< div class = " col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 " >
< div class = " panel box box-default " >
< div class = " box-header with-border " >
2020-04-01 03:21:15 -07:00
< h2 class = " box-title " >
2021-11-19 06:23:48 -08:00
< i class = " fab fa-slack " ></ i > {{ trans ( 'admin/settings/general.slack' ) }}
2020-04-01 03:21:15 -07:00
</ h2 >
2017-07-07 23:44:48 -07:00
</ div >
< div class = " box-body " >
2018-10-05 00:57:18 -07:00
< p style = " padding: 20px; " >
2018-02-22 16:35:34 -08:00
{ !! trans ( 'admin/settings/general.slack_integration_help' , array ( 'slack_link' => 'https://my.slack.com/services/new/incoming-webhook' )) !! }
2018-02-22 21:47:36 -08:00
@ if (( $setting -> slack_channel == '' ) && ( $setting -> slack_endpoint == '' ))
{{ trans ( 'admin/settings/general.slack_integration_help_button' ) }}
@ endif
</ p >
2018-02-22 16:35:34 -08:00
2020-09-15 23:14:10 -07:00
< div class = " col-md-12 " style = " border-top: 0px; " >
2017-07-07 23:44:48 -07:00
2023-01-25 16:22:34 -08:00
@ livewire ( 'slack-settings-form' )
2017-07-07 23:44:48 -07:00
2020-09-16 13:15:39 -07:00
< div class = " form-group " id = " slacktestcontainer " style = " display: none " >
2020-09-15 23:14:10 -07:00
< div class = " col-md-2 " >
{{ Form :: label ( 'test_slack' , 'Test Slack' ) }}
2018-02-22 16:35:34 -08:00
</ div >
2020-09-15 23:14:10 -07:00
< div class = " col-md-10 " id = " slacktestrow " >
2022-01-06 03:35:37 -08:00
< a class = " btn btn-default btn-sm pull-left " id = " slacktest " style = " margin-right: 10px; " > { !! trans ( 'admin/settings/general.slack_test' ) !! } </ a >
2018-02-22 16:35:34 -08:00
</ div >
2020-09-15 23:14:10 -07:00
< div class = " col-md-10 col-md-offset-2 " >
2018-02-22 16:35:34 -08:00
< span id = " slacktesticon " ></ span >
< span id = " slacktestresult " ></ span >
< span id = " slackteststatus " ></ span >
</ div >
2020-09-15 23:14:10 -07:00
2017-07-07 23:44:48 -07:00
2018-02-22 16:35:34 -08:00
</ div >
</ div > <!--/-->
2017-07-07 23:44:48 -07:00
</ div > <!--/. box - body -->
</ div > <!-- / box -->
</ div > <!-- /. col - md - 8 -->
</ div > <!-- /. row -->
{{ Form :: close ()}}
@ stop
2018-02-22 16:35:34 -08:00
2023-01-26 15:17:08 -08:00
{{ --@ push ( 'js' ) -- }}
{{ -- < script nonce = " { { csrf_token() }} " >-- }}
{{ -- var fieldcheck = function ( event ) { -- }}
{{ -- if ( $ ( '#slack_endpoint' ) . val () != " " && $ ( '#slack_channel' ) . val () != " " && $ ( '#slack_botname' ) . val () != " " ) { -- }}
{{ -- //enable test button *only* if all three fields are filled in--}}
{{ -- $ ( '#slacktestcontainer' ) . fadeIn ( 500 ); -- }}
{{ -- } else { -- }}
{{ -- //otherwise it's hidden--}}
{{ -- $ ( '#slacktestcontainer' ) . fadeOut ( 500 ); -- }}
{{ -- } -- }}
{{ -- if ( event ) { //on 'initial load' we don't *have* an 'event', but in the regular keyup callback, we *do*. So this only fires on 'real' callback events, not on first load--}}
{{ -- if ( $ ( '#slack_endpoint' ) . val () == " " && $ ( '#slack_channel' ) . val () == " " && $ ( '#slack_botname' ) . val () == " " ) { -- }}
{{ -- // if all three fields are blank, the user may want to disable Slack integration; enable the Save button--}}
{{ -- $ ( '#save_slack' ) . removeAttr ( 'disabled' ); -- }}
{{ -- } -- }}
{{ -- } -- }}
{{ -- }; -- }}
{{ -- fieldcheck (); //run our field-checker once on page-load to set the initial state correctly.--}}
{{ -- $ ( 'input:text' ) . keyup ( fieldcheck ); // if *any* text field changes, we recalculate button states--}}
{{ -- $ ( " #slacktest " ) . click ( function () { -- }}
{{ -- $ ( " #slacktestrow " ) . removeClass ( 'text-success' ); -- }}
{{ -- $ ( " #slacktestrow " ) . removeClass ( 'text-danger' ); -- }}
{{ -- $ ( " #slackteststatus " ) . removeClass ( 'text-danger' ); -- }}
{{ -- $ ( " #slackteststatus " ) . html ( '' ); -- }}
{{ -- $ ( " #slacktesticon " ) . html ( '<i class="fas fa-spinner spin"></i> {{ trans(' admin / settings / message . slack . sending ') }}' ); -- }}
{{ -- $ . ajax ({ -- }}
{{ -- -- }}
{{ -- // If I comment this back in, I always get a success (200) message--}}
{{ -- // Without it, I get --}}
{{ -- // beforeSend: function (xhr) { --}}
{{ -- // xhr.setRequestHeader("Content-Type","application/json");--}}
{{ -- // xhr.setRequestHeader("Accept","text/json");--}}
{{ -- // },--}}
{{ -- -- }}
{{ -- -- }}
{{ -- url : '{{ route(' api . settings . slacktest ') }}' , -- }}
{{ -- type : 'POST' , -- }}
{{ -- headers : { -- }}
{{ -- " X-Requested-With " : 'XMLHttpRequest' , -- }}
{{ -- " X-CSRF-TOKEN " : $ ( 'meta[name="csrf-token"]' ) . attr ( 'content' ), -- }}
{{ -- // 'Accept': 'application/json',--}}
{{ -- // 'Content-Type': 'application/json',--}}
{{ -- }, -- }}
{{ -- data : { -- }}
{{ -- 'slack_endpoint' : $ ( '#slack_endpoint' ) . val (), -- }}
{{ -- 'slack_channel' : $ ( '#slack_channel' ) . val (), -- }}
{{ -- 'slack_botname' : $ ( '#slack_botname' ) . val (), -- }}
{{ -- }, -- }}
{{ -- dataType : 'json' , -- }}
{{ -- accepts : { -- }}
{{ -- text : " application/json " -- }}
{{ -- }, -- }}
{{ -- success : function ( data ) { -- }}
{{ -- $ ( '#save_slack' ) . removeAttr ( 'disabled' ); -- }}
{{ -- $ ( " #slacktesticon " ) . html ( '' ); -- }}
{{ -- $ ( " #slacktestrow " ) . addClass ( 'text-success' ); -- }}
{{ -- $ ( " #slackteststatus " ) . addClass ( 'text-success' ); -- }}
{{ -- //TODO: This is a bit hacky...Might need some cleanup--}}
{{ -- $ ( " #slackteststatus " ) . html ( '<i class="fas fa-check text-success"></i> {{ trans(' admin / settings / message . slack . success_pt1 ') }} ' + $ ( '#slack_channel' ) . val () + '{{ trans(' admin / settings / message . slack . success_pt2 ') }}' ); -- }}
{{ -- }, -- }}
{{ -- error : function ( data ) { -- }}
{{ -- if ( data . responseJSON ) { -- }}
{{ -- var errors = data . responseJSON . errors ; -- }}
{{ -- var error_msg = data . responseJSON . message ; -- }}
{{ -- } else { -- }}
{{ -- var errors ; -- }}
{{ -- var error_msg = trans ( 'admin/settings/message.slack.error' ); -- }}
{{ -- } -- }}
{{ -- var error_text = '' ; -- }}
{{ -- $ ( '#save_slack' ) . attr ( " disabled " , true ); -- }}
{{ -- $ ( " #slacktesticon " ) . html ( '' ); -- }}
{{ -- $ ( " #slackteststatus " ) . addClass ( 'text-danger' ); -- }}
{{ -- $ ( " #slacktesticon " ) . html ( '<i class="fas fa-exclamation-triangle text-danger"></i><span class="text-danger">' + error_msg + '</span>' ); -- }}
{{ -- -- }}
{{ -- if ( data . status == 500 ) { -- }}
{{ -- $ ( '#slackteststatus' ) . html ( '{{ trans(' admin / settings / message . slack . 500 ') }}' ); -- }}
{{ -- } else if (( data . status == 400 ) || ( data . status == 422 )) { -- }}
{{ -- console . log ( 'Type of errors is ' + typeof errors ); -- }}
{{ -- console . log ( 'Data status was 400 or 422' ); -- }}
{{ -- if ( typeof errors != 'string' ) { -- }}
{{ -- -- }}
{{ -- console . log ( errors . length ); -- }}
{{ -- for ( i in errors ) { -- }}
{{ -- if ( errors [ i ]) { -- }}
{{ -- error_text += '<li>Error: ' + errors [ i ]; -- }}
{{ -- } -- }}
{{ -- } -- }}
{{ -- } else { -- }}
{{ -- error_text = errors ; -- }}
{{ -- } -- }}
{{ -- $ ( '#slackteststatus' ) . html ( error_text ); -- }}
{{ -- } else { -- }}
{{ -- $ ( '#slackteststatus' ) . html ( data . responseText . message ); -- }}
{{ -- } -- }}
{{ -- } -- }}
{{ -- }); -- }}
{{ -- return false ; -- }}
{{ -- }); -- }}
{{ -- </ script >-- }}
{{ --@ endpush -- }}