Skip to content

Commit e87e0fe

Browse files
committed
Let settings in tab "other" be deleted
1 parent 3fdf005 commit e87e0fe

7 files changed

Lines changed: 120 additions & 77 deletions

File tree

src/Controllers/ConfigurationsController.php

Lines changed: 92 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -82,73 +82,97 @@ public function create()
8282
return view('panichd::admin.configuration.create');
8383
}
8484

85+
/**
86+
* Store a newly created Configuration in storage.
87+
*
88+
* @param Request $request
89+
*
90+
* @return \Illuminate\Http\RedirectResponse
91+
*/
92+
public function store(Request $request)
93+
{
94+
$input = $request->all();
95+
96+
$configuration = new Configuration();
97+
$configuration->create($input);
98+
99+
Session::flash('configuration', 'Setting saved successfully.');
100+
\Cache::forget('panichd::settings'); // refresh cached settings
101+
return redirect()->action('\PanicHD\PanicHD\Controllers\ConfigurationsController@index');
102+
}
103+
104+
/**
105+
* Show the form for editing the specified Configuration.
106+
*
107+
* @param int $id
108+
*
109+
* @return Response
110+
*/
111+
public function edit($id)
112+
{
113+
$configuration = Configuration::findOrFail($id);
114+
$should_serialize = Setting::is_serialized($configuration->value);
115+
$default_serialized = Setting::is_serialized($configuration->default);
116+
117+
return view('panichd::admin.configuration.edit', compact('configuration', 'should_serialize', 'default_serialized'));
118+
}
119+
120+
/**
121+
* Update the specified Configuration in storage.
122+
*
123+
* @param int $id
124+
* @param Request $request
125+
*
126+
* @return $this|\Illuminate\Http\RedirectResponse
127+
*/
128+
public function update(Request $request, $id)
129+
{
130+
$configuration = Configuration::findOrFail($id);
131+
132+
$value = $request->value;
133+
134+
if ($request->serialize) {
135+
//if(!Hash::check($request->password, auth()->user()->password)){
136+
if (!Auth::attempt($request->only('password'), false, false)) {
137+
return back()->withErrors([trans('panichd::admin.config-edit-auth-failed')]);
138+
}
139+
if (false === eval('$value = serialize('.$value.');')) {
140+
return back()->withErrors([trans('panichd::admin.config-edit-eval-error')]);
141+
}
142+
}
143+
144+
$configuration->update(['value' => $value, 'lang' => $request->lang]);
145+
146+
Session::flash('configuration', trans('panichd::admin.config-update-confirm', ['name' => $request->name]));
147+
// refresh cached settings
148+
\Cache::forget('panichd::settings');
149+
\Cache::forget('panichd::settings.'.$configuration->slug);
150+
151+
return redirect()->action('\PanicHD\PanicHD\Controllers\ConfigurationsController@index');
152+
}
85153

86-
/**
87-
* Store a newly created Configuration in storage.
88-
*
89-
* @param Request $request
90-
*
91-
* @return \Illuminate\Http\RedirectResponse
92-
*/
93-
public function store(Request $request)
94-
{
95-
$input = $request->all();
96-
97-
$configuration = new Configuration();
98-
$configuration->create($input);
99-
100-
Session::flash('configuration', 'Setting saved successfully.');
101-
\Cache::forget('panichd::settings'); // refresh cached settings
102-
return redirect()->action('\PanicHD\PanicHD\Controllers\ConfigurationsController@index');
103-
}
104-
105-
/**
106-
* Show the form for editing the specified Configuration.
107-
*
108-
* @param int $id
109-
*
110-
* @return Response
111-
*/
112-
public function edit($id)
113-
{
114-
$configuration = Configuration::findOrFail($id);
115-
$should_serialize = Setting::is_serialized($configuration->value);
116-
$default_serialized = Setting::is_serialized($configuration->default);
117-
118-
return view('panichd::admin.configuration.edit', compact('configuration', 'should_serialize', 'default_serialized'));
119-
}
120-
121-
/**
122-
* Update the specified Configuration in storage.
123-
*
124-
* @param int $id
125-
* @param Request $request
126-
*
127-
* @return $this|\Illuminate\Http\RedirectResponse
128-
*/
129-
public function update(Request $request, $id)
130-
{
131-
$configuration = Configuration::findOrFail($id);
132-
133-
$value = $request->value;
134-
135-
if ($request->serialize) {
136-
//if(!Hash::check($request->password, auth()->user()->password)){
137-
if (!Auth::attempt($request->only('password'), false, false)) {
138-
return back()->withErrors([trans('panichd::admin.config-edit-auth-failed')]);
139-
}
140-
if (false === eval('$value = serialize('.$value.');')) {
141-
return back()->withErrors([trans('panichd::admin.config-edit-eval-error')]);
142-
}
143-
}
144-
145-
$configuration->update(['value' => $value, 'lang' => $request->lang]);
146-
147-
Session::flash('configuration', trans('panichd::admin.config-update-confirm', ['name' => $request->name]));
148-
// refresh cached settings
149-
\Cache::forget('panichd::settings');
150-
\Cache::forget('panichd::settings.'.$configuration->slug);
151-
152-
return redirect()->action('\PanicHD\PanicHD\Controllers\ConfigurationsController@index');
153-
}
154+
/**
155+
* Update the specified Configuration in storage.
156+
*
157+
* @param int $id
158+
* @param Request $request
159+
*
160+
* @return $this|\Illuminate\Http\RedirectResponse
161+
*/
162+
public function destroy(Request $request, $id)
163+
{
164+
$configuration = Configuration::findOrFail($id);
165+
$clone = clone $configuration;
166+
167+
$value = $request->value;
168+
169+
$configuration->delete();
170+
171+
Session::flash('status', trans('panichd::admin.config-delete-confirm', ['name' => $clone->slug]));
172+
// refresh cached settings
173+
\Cache::forget('panichd::settings');
174+
\Cache::forget('panichd::settings.'.$clone->slug);
175+
176+
return redirect()->action('\PanicHD\PanicHD\Controllers\ConfigurationsController@index');
177+
}
154178
}

src/Translations/ca/admin.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,5 +280,6 @@
280280
'config-edit-eval-error' => 'Valor no vàlid',
281281
'config-edit-tools' => 'Eines:',
282282
'config-update-confirm' => 'El paràmetre :name s\'ha actualitzat',
283+
'config-delete-confirm' => 'El paràmetre :name s\'ha eliminat',
283284

284285
];

src/Translations/en/admin.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,5 +281,5 @@
281281
'config-edit-eval-error' => 'Invalid value', //Added: 2016-01-16
282282
'config-edit-tools' => 'Tools:',
283283
'config-update-confirm' => 'Configuration :name has been updated',
284-
284+
'config-delete-confirm' => 'Configuration :name has been deleted',
285285
];

src/Translations/es/admin.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,5 +172,6 @@
172172
'config-edit-auth-failed' => 'Las claves no son iguales', //Added: 2016-01-16
173173
'config-edit-eval-error' => 'Valor inválido', //Added: 2016-01-16
174174
'config-edit-tools' => 'Herramientas:',
175-
176-
];
175+
'config-update-confirm' => 'El parámetro :name ha sido actualizado',
176+
'config-delete-confirm' => 'El parámetro :name ha sido eliminado',
177+
];

src/Views/admin/configuration/index.blade.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
<div class="tab-content">
4646
@foreach($configurations_by_sections as $section => $a_configurations)
4747
<div id="{{ $section }}-configs" class="tab-pane fade @if($section == "init") show active @endif">
48-
@include('panichd::admin.configuration.partials.tab_table', ['section_configurations' => $a_configurations])
48+
@include('panichd::admin.configuration.partials.tab_table', ['section_name' => $section, 'section_configurations' => $a_configurations])
4949
</div>
5050
@endforeach
5151
</div>
@@ -55,3 +55,7 @@
5555
<!-- // Configuration -->
5656

5757
@endsection
58+
59+
@section('footer')
60+
@include('panichd::admin.configuration.partials.index_scripts')
61+
@append
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<script type="text/javascript">
2+
$(function(){
3+
/*
4+
* Click on a configuration delete button
5+
*/
6+
$('.j_configuration_delete').click(function(e){
7+
e.preventDefault();
8+
9+
$('#configuration_delete_form').attr('action', $(this).data('form-action'));
10+
$('#configuration_delete_form').submit();
11+
});
12+
});
13+
14+
</script>

src/Views/admin/configuration/partials/tab_table.blade.php

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,17 @@
2222
['class' => 'btn btn-default', 'title' => trans('panichd::admin.table-edit').' '.$configuration->slug, 'data-toggle' => 'tooltip'] )
2323
!!}
2424
@if($section_name == 'other')
25-
{!! link_to_route(
26-
, trans('panichd::admin.btn-delete'), $configuration->id,
27-
['class' => 'btn btn-default'] )
28-
!!}
25+
<button class="btn btn-default j_configuration_delete" data-form-action="{{ route($setting->grab('admin_route').'.configuration.destroy', $configuration->id) }}">
26+
{{ trans('panichd::admin.btn-delete') }}
27+
</button>
2928
@endif
3029
</td>
3130
</tr>
3231
@endforeach
3332
</tbody>
3433
</table>
3534
@if($section_name == 'other')
36-
<form id="configuration_delete" action="{{ route($setting->grab('admin_route').'.configuration.destroy' }}" method="POST" style="display: none">
35+
<form id="configuration_delete_form" action="" method="POST" style="display: none">
3736
<input type="hidden" name="_method" value="DELETE">
3837
<input type="hidden" name="_token" value="{{ csrf_token() }}">
3938
</form>

0 commit comments

Comments
 (0)