Squashed commit of the following:
commit 2840f58c61c906f5ac408e9681cf33f802625f74
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date: Fri Nov 25 15:52:58 2016 +0000
Add changes
commit 86b515a20c65e4956766242db424d84082c7e99e
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date: Fri Nov 25 15:42:00 2016 +0000
gulp derived assets
commit def587e2f3805a0ba669d804b12d83e9f3ec5ea7
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date: Fri Nov 25 15:41:43 2016 +0000
Include new contact styles
commit 8256dc30b0ad23096b3dcde264826fc6cfaa8788
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date: Fri Nov 25 15:41:19 2016 +0000
Better styled contacts
commit f12ce1d6f68857d88ad6f39f8b835d036c793c8a
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date: Wed Nov 23 18:11:47 2016 +0000
Sort out views for contacts, better h-card
commit 7be5fe82029b20f6cde3ce921f0cb625c27d21d6
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date: Wed Nov 23 18:09:00 2016 +0000
quick code tidy
commit 71dad7e4918ff4e513715d4ef3a296fa39507ca1
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date: Wed Nov 23 16:58:32 2016 +0000
Get contact editing working
commit 0b885190733979be4f5508d28523e8e0b45399a2
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date: Wed Nov 23 16:42:10 2016 +0000
Improve form layout, add facebook entry
commit 0a6bd79e384dcd872cb9a89b1232afaf20e729b2
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date: Wed Nov 23 16:41:49 2016 +0000
Add facebook column
commit 639d49045c9a213eafd970ceafe288a51cfc95c8
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date: Wed Nov 23 16:30:40 2016 +0000
Update changelog
commit f4a018591d50bf9af7e1a64daa9e4a04daa6e1d4
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date: Wed Nov 23 16:27:42 2016 +0000
Reference right view, use a better variable name when parsing a URL
commit 583f7d7f7cc577cf31b37bbc2bdcd8865c7b9980
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date: Wed Nov 23 16:26:58 2016 +0000
Move mini-hcard to templates folder, update content
commit 2e1b13eff052b65cf2b86796a9509c81d9c86768
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date: Wed Nov 23 16:26:10 2016 +0000
Add facebook column to contacts table
This commit is contained in:
parent
73e4e09a04
commit
23b6e440ba
19 changed files with 143 additions and 55 deletions
|
|
@ -4,6 +4,7 @@ namespace App\Http\Controllers;
|
|||
|
||||
use App\Contact;
|
||||
use GuzzleHttp\Client;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Filesystem\Filesystem;
|
||||
|
||||
class ContactsAdminController extends Controller
|
||||
|
|
@ -66,10 +67,10 @@ class ContactsAdminController extends Controller
|
|||
$contact->nick = $request->input('nick');
|
||||
$contact->homepage = $request->input('homepage');
|
||||
$contact->twitter = $request->input('twitter');
|
||||
$contact->facebook = $request->input('facebook');
|
||||
$contact->save();
|
||||
$contactId = $contact->id;
|
||||
|
||||
return view('admin.newcontactsuccess', ['id' => $contactId]);
|
||||
return view('admin.newcontactsuccess', ['id' => $contact->id]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -88,6 +89,7 @@ class ContactsAdminController extends Controller
|
|||
$contact->nick = $request->input('nick');
|
||||
$contact->homepage = $request->input('homepage');
|
||||
$contact->twitter = $request->input('twitter');
|
||||
$contact->facebook =$request->input('facebook');
|
||||
$contact->save();
|
||||
|
||||
if ($request->hasFile('avatar')) {
|
||||
|
|
|
|||
|
|
@ -17,10 +17,10 @@ class ContactsController extends Controller
|
|||
$filesystem = new Filesystem();
|
||||
$contacts = Contact::all();
|
||||
foreach ($contacts as $contact) {
|
||||
$contact->homepagePretty = parse_url($contact->homepage)['host'];
|
||||
$file = public_path() . '/assets/profile-images/' . $contact->homepagePretty . '/image';
|
||||
$contact->homepageHost = parse_url($contact->homepage, PHP_URL_HOST);
|
||||
$file = public_path() . '/assets/profile-images/' . $contact->homepageHost . '/image';
|
||||
$contact->image = ($filesystem->exists($file)) ?
|
||||
'/assets/profile-images/' . $contact->homepagePretty . '/image'
|
||||
'/assets/profile-images/' . $contact->homepageHost . '/image'
|
||||
:
|
||||
'/assets/profile-images/default-image';
|
||||
}
|
||||
|
|
@ -37,10 +37,10 @@ class ContactsController extends Controller
|
|||
{
|
||||
$filesystem = new Filesystem();
|
||||
$contact = Contact::where('nick', '=', $nick)->firstOrFail();
|
||||
$contact->homepagePretty = parse_url($contact->homepage)['host'];
|
||||
$file = public_path() . '/assets/profile-images/' . $contact->homepagePretty . '/image';
|
||||
$contact->homepageHost = parse_url($contact->homepage, PHP_URL_HOST);
|
||||
$file = public_path() . '/assets/profile-images/' . $contact->homepageHost . '/image';
|
||||
$contact->image = ($filesystem->exists($file)) ?
|
||||
'/assets/profile-images/' . $contact->homepagePretty . '/image'
|
||||
'/assets/profile-images/' . $contact->homepageHost . '/image'
|
||||
:
|
||||
'/assets/profile-images/default-image';
|
||||
|
||||
|
|
|
|||
|
|
@ -178,15 +178,16 @@ class Note extends Model implements HasMedia
|
|||
try {
|
||||
$contact = Contact::where('nick', '=', mb_strtolower($matches[1]))->firstOrFail();
|
||||
} catch (ModelNotFoundException $e) {
|
||||
//assume its an actual twitter handle
|
||||
return '<a href="https://twitter.com/' . $matches[1] . '">' . $matches[0] . '</a>';
|
||||
}
|
||||
$path = parse_url($contact->homepage)['host'];
|
||||
$contact->photo = (file_exists(public_path() . '/assets/profile-images/' . $path . '/image')) ?
|
||||
'/assets/profile-images/' . $path . '/image'
|
||||
$host = parse_url($contact->homepage, PHP_URL_HOST);
|
||||
$contact->photo = (file_exists(public_path() . '/assets/profile-images/' . $host . '/image')) ?
|
||||
'/assets/profile-images/' . $host . '/image'
|
||||
:
|
||||
'/assets/profile-images/default-image';
|
||||
|
||||
return trim(view('mini-hcard-template', ['contact' => $contact])->render());
|
||||
return trim(view('templates.mini-hcard', ['contact' => $contact])->render());
|
||||
},
|
||||
$text
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,10 @@
|
|||
# Changelog
|
||||
|
||||
## Version {next}
|
||||
- improved contact h-cards
|
||||
- Better look in /contacts
|
||||
- h-cards now have person-tags (issue#36)
|
||||
|
||||
## Version 0.0.16.1 (2016-11-22)
|
||||
- Break words
|
||||
- Added a footer to all pages
|
||||
|
|
|
|||
|
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class AddFacebookToContacts extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('contacts', function (Blueprint $table) {
|
||||
$table->string('facebook')->nullable();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('contacts', function (Blueprint $table) {
|
||||
$table->dropColumn('facebook');
|
||||
});
|
||||
}
|
||||
}
|
||||
2
public/assets/css/app.css
vendored
2
public/assets/css/app.css
vendored
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
1
resources/assets/sass/app.scss
vendored
1
resources/assets/sass/app.scss
vendored
|
|
@ -18,3 +18,4 @@ html {
|
|||
@import "pagination";
|
||||
@import "note-form";
|
||||
@import "mapbox";
|
||||
@import "contacts";
|
||||
|
|
|
|||
14
resources/assets/sass/contacts.scss
vendored
Normal file
14
resources/assets/sass/contacts.scss
vendored
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
//contacts.scss
|
||||
|
||||
.contact {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
margin-top: 1em;
|
||||
border-bottom: 1px dashed grey;
|
||||
}
|
||||
|
||||
.contact img {
|
||||
margin-right: 0.2rem;
|
||||
width: 100px;
|
||||
height:100px;
|
||||
}
|
||||
|
|
@ -7,14 +7,36 @@ Edit Contact « Admin CP
|
|||
@section('content')
|
||||
<h1>Edit Contact</h1>
|
||||
<form action="/admin/contacts/edit/{{ $contact->id }}" method="post" enctype="multipart/form-data" accept-charset="utf-8">
|
||||
<input type="hidden" name="_token" value="{{ csrf_token() }}">
|
||||
<label for="name">Real Name:</label> <input type="text" name="name" id="name" placeholder="Real Name" value="{{ $contact->name }}"><br>
|
||||
<label for="nick">Nick:</label> <input type="text" name="nick" id="nick" placeholder="local_nick" value="{{ $contact->nick }}"><br>
|
||||
<label for="homepage">Homepage:</label> <input type="text" name="homepage" id="homepage" placeholder="https://homepage.com" value="{{ $contact->homepage }}"><br>
|
||||
<label for="twitter">Twitter Nick:</label> <input type="text" name="twitter" id="twitter" placeholder="Twitter handle" value="{{ $contact->twitter }}"><br>
|
||||
<label for="avatar">Avatar:</label> <input type="file" accept="image/*" value="Upluad" name="avatar" id="avatar"><br>
|
||||
<input type="submit" name="submit" value="Submit">
|
||||
<input type="hidden" name="_token" value="{{ csrf_token() }}">
|
||||
<fieldset class="note-ui">
|
||||
<legend>Conctact</legend>
|
||||
<div>
|
||||
<label for="name">Real Name:</label>
|
||||
<input type="text" name="name" id="name" placeholder="Real Name" value="{{ $contact->name }}">
|
||||
</div>
|
||||
<div>
|
||||
<label for="nick">Nick:</label>
|
||||
<input type="text" name="nick" id="nick" placeholder="local_nick" value="{{ $contact->nick }}">
|
||||
</div>
|
||||
<div>
|
||||
<label for="homepage">Website:</label>
|
||||
<input type="text" name="homepage" id="homepage" placeholder="https://homepage.com" value="{{ $contact->homepage }}">
|
||||
</div>
|
||||
<div>
|
||||
<label for="twitter">Twitter Nick:</label>
|
||||
<input type="text" name="twitter" id="twitter" placeholder="Twitter handle" value="{{ $contact->twitter }}">
|
||||
</div>
|
||||
<div>
|
||||
<label for="facebook">Facebook Profile ID:</label>
|
||||
<input type="text" name="facebook" id="facebook" placeholder="Facebook ID" value="{{ $contact->facebook }}">
|
||||
</div>
|
||||
<div>
|
||||
<label for="avatar">Avatar:</label>
|
||||
<input type="file" accept="image/*" value="Upload" name="avatar" id="avatar">
|
||||
</div>
|
||||
<input type="submit" name="submit" value="Submit">
|
||||
</fieldset>
|
||||
</form>
|
||||
<p>Or do you want to <a href="/admin/contacts/delete/{{ $contact->id }}">delete</a> this contact?</p>
|
||||
<p>Instead of uploading an image, you can <a href="/admin/contacts/edit/{{ $contact->id }}/getavatar">grab from their homepage</a>?</p>
|
||||
@stop
|
||||
@stop
|
||||
|
|
|
|||
|
|
@ -7,21 +7,23 @@ List Contacts « Admin CP
|
|||
@section('content')
|
||||
<h1>Contacts</h1>
|
||||
<table>
|
||||
<tr>
|
||||
<th>Real Name</th>
|
||||
<th>Nick</th>
|
||||
<th>Homepage</th>
|
||||
<th>Twitter</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Real Name</th>
|
||||
<th>Nick</th>
|
||||
<th>Homepage</th>
|
||||
<th>Twitter</th>
|
||||
<th>Facebook</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
@foreach($contacts as $contact)
|
||||
<tr>
|
||||
<td>{{ $contact->name }}</td>
|
||||
<td>{{ $contact->nick }}</td>
|
||||
<td>{{ $contact->homepage }}</td>
|
||||
<td>{{ $contact->twitter }}</td>
|
||||
<td><a href="/admin/contacts/edit/{{ $contact->id }}">edit</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ $contact->name }}</td>
|
||||
<td>{{ $contact->nick }}</td>
|
||||
<td>{{ $contact->homepage }}</td>
|
||||
<td>{{ $contact->twitter }}</td>
|
||||
<td>{{ $contact->facebook }}</td>
|
||||
<td><a href="/admin/contacts/edit/{{ $contact->id }}">edit</a></td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
@stop
|
||||
@stop
|
||||
|
|
|
|||
|
|
@ -1,10 +0,0 @@
|
|||
<div class="contact h-card">
|
||||
<div class="contact-info">
|
||||
<span class="p-name">{{ $contact->name }}</span> <a href="/contacts/{{ $contact->nick }}">{{ '@' . $contact->nick }}</a>
|
||||
<ul class="contact-links">
|
||||
<li><i class="fa fa-globe fa-fw"></i><a href="{{ $contact->homepage }}" class="u-url">{{ $contact->homepagePretty }}</a></li>
|
||||
@if($contact->twitter != null)<li><i class="fa fa-twitter fa-fw"></i><a href="https://twitter.com/{{ $contact->twitter }}">{{ $contact->twitter }}</a></li>@endif
|
||||
</ul>
|
||||
</div>
|
||||
<img src="{{ $contact->image }}" alt="" class="u-photo">
|
||||
</div>
|
||||
|
|
@ -5,5 +5,5 @@ Contacts « Jonny Barnes
|
|||
@stop
|
||||
|
||||
@section('content')
|
||||
@include('contact-template', array('contact' => $contact))
|
||||
@stop
|
||||
@include('templates.contact', array('contact' => $contact))
|
||||
@stop
|
||||
|
|
|
|||
|
|
@ -6,6 +6,6 @@ Contacts « Jonny Barnes
|
|||
|
||||
@section('content')
|
||||
@foreach($contacts as $contact)
|
||||
@include('contact-template', array('contact' => $contact))
|
||||
@include('templates.contact', array('contact' => $contact))
|
||||
@endforeach
|
||||
@stop
|
||||
@stop
|
||||
|
|
|
|||
|
|
@ -1,4 +0,0 @@
|
|||
<a class="h-card vcard mini-h-card" href="{{ $contact->homepage }}">
|
||||
<img class="u-photo photo logo" alt="" src="{{ $contact->photo }}">
|
||||
{!! $contact->name !!}
|
||||
</a>
|
||||
15
resources/views/templates/contact.blade.php
Normal file
15
resources/views/templates/contact.blade.php
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
<div class="h-card contact">
|
||||
<div>
|
||||
<img src="{{ $contact->image }}" alt="" class="u-photo">
|
||||
</div>
|
||||
<div>
|
||||
<span class="p-name">{{ $contact->name }}</span> <a href="/contacts/{{ $contact->nick }}">{{ '@' . $contact->nick }}</a>
|
||||
<ul class="contact-links">
|
||||
<li><a class="u-url" href="{{ $contact->homepage }}">{{ $contact->homepageHost }}</a></li>
|
||||
@if($contact->twitter)<li><a class="u-url" href="https://twitter.com/{{ $contact->twitter }}">Twitter Profile</a></li>@endif
|
||||
|
||||
@if($contact->facebook)<li><a class="u-url" href="https://www.facebook.com/{{ $contact->facebook }}">Facebook Profile</a></li>@endif
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
8
resources/views/templates/mini-hcard.blade.php
Normal file
8
resources/views/templates/mini-hcard.blade.php
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
<span class="u-category h-card">
|
||||
<a class="mini-h-card u-url p-name" href="{{ $contact->homepage }}">
|
||||
<img class="u-photo" alt="" src="{{ $contact->photo }}">
|
||||
{!! $contact->name !!}
|
||||
</a>
|
||||
@if ($contact->facebook)<a class="u-url" href="https://www.facebook.com/{{ $contact->facebook }}"></a>@endif
|
||||
@if ($contact->twitter)<a class="u-url" href="https://twitter.com/{{ $contact->twitter }}"></a>@endif
|
||||
</span>
|
||||
Loading…
Reference in a new issue