diff options
| author | Daniel Friesel <derf@finalrewind.org> | 2019-05-12 11:44:28 +0200 | 
|---|---|---|
| committer | Daniel Friesel <derf@finalrewind.org> | 2019-05-12 11:44:28 +0200 | 
| commit | 82297687ed0d056184342541c8af708ee547149f (patch) | |
| tree | 408e5c762079699d043ab2409891317cb96ddc21 | |
| parent | 42eafec28dba956e32ce6f2ffc5f6988e44cfada (diff) | |
social sharing for current journey1.3.0
| -rw-r--r-- | public/static/css/local.css | 3 | ||||
| -rw-r--r-- | public/static/js/travelynx-actions.js | 14 | ||||
| -rw-r--r-- | public/static/js/travelynx-actions.min.js | 2 | ||||
| -rw-r--r-- | templates/_checked_in.html.ep | 16 | ||||
| -rw-r--r-- | templates/changelog.html.ep | 13 | 
5 files changed, 45 insertions, 3 deletions
| diff --git a/public/static/css/local.css b/public/static/css/local.css index a9848cc..d44658c 100644 --- a/public/static/css/local.css +++ b/public/static/css/local.css @@ -2,7 +2,8 @@  .action-checkout,  .action-undo,  .action-cancelled-from, -.action-cancelled-to { +.action-cancelled-to, +.action-share {  	cursor: pointer;  } diff --git a/public/static/js/travelynx-actions.js b/public/static/js/travelynx-actions.js index fd5df02..b4a6b90 100644 --- a/public/static/js/travelynx-actions.js +++ b/public/static/js/travelynx-actions.js @@ -138,6 +138,20 @@ function tvly_reg_handlers() {  			tvly_run(link, req);  		}  	}); +	$('.action-share').click(function() { +		if (navigator.share) { +			shareObj = { +				text: $(this).data('text') +			}; +			if ($(this).data('url')) { +				shareObj['url'] = $(this).data('url'); +			} +			navigator.share(shareObj); +		} +	}); +	if ($('.action-share').length && !navigator.share) { +		$('.action-share').css('display', 'none'); +	}  }  $(document).ready(function() {  	tvly_reg_handlers(); diff --git a/public/static/js/travelynx-actions.min.js b/public/static/js/travelynx-actions.min.js index a249bdf..c767698 100644 --- a/public/static/js/travelynx-actions.min.js +++ b/public/static/js/travelynx-actions.min.js @@ -1 +1 @@ -function upd_journey_data(){$(".countdown").each(function(){j_duration=$(this).data("duration"),j_arrival=$(this).data("arrival")})}function upd_countdown(){var t=Date.now()/1e3;j_arrival>0&&(j_arrival>t?$(".countdown").text("Ankunft in "+Math.round((j_arrival-t)/60)+" Minuten"):$(".countdown").text("Ziel erreicht"))}function tvly_run(t,a,e){var n='<i class="material-icons">error</i>',i=$('<div class="progress"><div class="indeterminate"></div></div>');t.hide(),t.after(i),$.post("/action",a,function(a){a.success?$(location).attr("href",a.redirect_to):(M.toast({html:n+" "+a.error}),i.remove(),e&&e(),t.append(" "+n),t.show())})}function tvly_update(){$.get("/ajax/status_card.html",function(t){$(".statuscol").html(t),tvly_reg_handlers(),upd_journey_data(),setTimeout(tvly_update,4e4)}).fail(function(){$(".sync-failed-marker").css("display","block"),upd_countdown(),setTimeout(tvly_update,5e3)})}function tvly_update_public(){var t;$(".publicstatuscol").each(function(){t=$(this).data("user")}),$.get("/ajax/status/"+t+".html",function(t){$(".publicstatuscol").html(t),upd_journey_data(),setTimeout(tvly_update_public,4e4)}).fail(function(){$(".sync-failed-marker").css("display","block"),upd_countdown(),setTimeout(tvly_update_public,5e3)})}function tvly_journey_progress(){var t=Date.now()/1e3,a=0;j_duration>0&&(a=1-(j_arrival-t)/j_duration,a<0&&(a=0),a>1&&(a=1),$(".progress .determinate").css("width",100*a+"%"),setTimeout(tvly_journey_progress,5e3))}function tvly_reg_handlers(){$(".action-checkin").click(function(){var t=$(this);tvly_run(t,{action:"checkin",station:t.data("station"),train:t.data("train")})}),$(".action-checkout").click(function(){var t=$(this),a={action:"checkout",station:t.data("station"),force:t.data("force")};tvly_run(t,a,function(){t.append(" – Ohne Echtzeitdaten auschecken?"),t.data("force",!0)})}),$(".action-undo").click(function(){var t=$(this);tvly_run(t,{action:"undo",undo_id:t.data("id")})}),$(".action-cancelled-from").click(function(){var t=$(this);tvly_run(t,{action:"cancelled_from",station:t.data("station"),train:t.data("train")})}),$(".action-cancelled-to").click(function(){var t=$(this);tvly_run(t,{action:"cancelled_to",station:t.data("station"),force:!0})}),$(".action-delete").click(function(){var t=$(this),a={action:"delete",id:t.data("id"),checkin:t.data("checkin"),checkout:t.data("checkout")};really_delete=confirm("Diese Zugfahrt wirklich löschen? Der Eintrag wird sofort aus der Datenbank entfernt und kann nicht wiederhergestellt werden."),really_delete&&tvly_run(t,a)})}var j_duration=0,j_arrival=0;$(document).ready(function(){tvly_reg_handlers(),$(".statuscol .autorefresh").length&&(upd_journey_data(),setTimeout(tvly_update,4e4),setTimeout(tvly_journey_progress,5e3)),$(".publicstatuscol .autorefresh").length&&(upd_journey_data(),setTimeout(tvly_update_public,4e4),setTimeout(tvly_journey_progress,5e3)),$("a[href]").click(function(){$("nav .preloader-wrapper").addClass("active")})}); +function upd_journey_data(){$(".countdown").each(function(){j_duration=$(this).data("duration"),j_arrival=$(this).data("arrival")})}function upd_countdown(){var t=Date.now()/1e3;j_arrival>0&&(j_arrival>t?$(".countdown").text("Ankunft in "+Math.round((j_arrival-t)/60)+" Minuten"):$(".countdown").text("Ziel erreicht"))}function tvly_run(t,a,e){var n='<i class="material-icons">error</i>',i=$('<div class="progress"><div class="indeterminate"></div></div>');t.hide(),t.after(i),$.post("/action",a,function(a){a.success?$(location).attr("href",a.redirect_to):(M.toast({html:n+" "+a.error}),i.remove(),e&&e(),t.append(" "+n),t.show())})}function tvly_update(){$.get("/ajax/status_card.html",function(t){$(".statuscol").html(t),tvly_reg_handlers(),upd_journey_data(),setTimeout(tvly_update,4e4)}).fail(function(){$(".sync-failed-marker").css("display","block"),upd_countdown(),setTimeout(tvly_update,5e3)})}function tvly_update_public(){var t;$(".publicstatuscol").each(function(){t=$(this).data("user")}),$.get("/ajax/status/"+t+".html",function(t){$(".publicstatuscol").html(t),upd_journey_data(),setTimeout(tvly_update_public,4e4)}).fail(function(){$(".sync-failed-marker").css("display","block"),upd_countdown(),setTimeout(tvly_update_public,5e3)})}function tvly_journey_progress(){var t=Date.now()/1e3,a=0;j_duration>0&&(a=1-(j_arrival-t)/j_duration,a<0&&(a=0),a>1&&(a=1),$(".progress .determinate").css("width",100*a+"%"),setTimeout(tvly_journey_progress,5e3))}function tvly_reg_handlers(){$(".action-checkin").click(function(){var t=$(this);tvly_run(t,{action:"checkin",station:t.data("station"),train:t.data("train")})}),$(".action-checkout").click(function(){var t=$(this),a={action:"checkout",station:t.data("station"),force:t.data("force")};tvly_run(t,a,function(){t.append(" – Ohne Echtzeitdaten auschecken?"),t.data("force",!0)})}),$(".action-undo").click(function(){var t=$(this);tvly_run(t,{action:"undo",undo_id:t.data("id")})}),$(".action-cancelled-from").click(function(){var t=$(this);tvly_run(t,{action:"cancelled_from",station:t.data("station"),train:t.data("train")})}),$(".action-cancelled-to").click(function(){var t=$(this);tvly_run(t,{action:"cancelled_to",station:t.data("station"),force:!0})}),$(".action-delete").click(function(){var t=$(this),a={action:"delete",id:t.data("id"),checkin:t.data("checkin"),checkout:t.data("checkout")};really_delete=confirm("Diese Zugfahrt wirklich löschen? Der Eintrag wird sofort aus der Datenbank entfernt und kann nicht wiederhergestellt werden."),really_delete&&tvly_run(t,a)}),$(".action-share").click(function(){navigator.share&&(shareObj={text:$(this).data("text")},$(this).data("url")&&(shareObj.url=$(this).data("url")),navigator.share(shareObj))}),$(".action-share").length&&!navigator.share&&$(".action-share").css("display","none")}var j_duration=0,j_arrival=0;$(document).ready(function(){tvly_reg_handlers(),$(".statuscol .autorefresh").length&&(upd_journey_data(),setTimeout(tvly_update,4e4),setTimeout(tvly_journey_progress,5e3)),$(".publicstatuscol .autorefresh").length&&(upd_journey_data(),setTimeout(tvly_update_public,4e4),setTimeout(tvly_journey_progress,5e3)),$("a[href]").click(function(){$("nav .preloader-wrapper").addClass("active")})}); diff --git a/templates/_checked_in.html.ep b/templates/_checked_in.html.ep index b15db9d..74a4efb 100644 --- a/templates/_checked_in.html.ep +++ b/templates/_checked_in.html.ep @@ -109,7 +109,21 @@  	</div>  	<div class="card-action">  		<a class="action-undo blue-text" data-id="in_transit"> -			<i class="material-icons">undo</i> Checkin Rückgängig? +			<i class="material-icons left">undo</i> Rückgängig  		</a> +		% if ($journey->{arr_name}) { +			% my $attrib = 'im'; +			% if ($journey->{train_type} =~ m{ ^ (?: S | RB ) $ }x) { +				$attrib = 'in der'; +			% } +			<a class="action-share blue-text right" +				data-text="Ich bin gerade <%= $attrib %> <%= $journey->{train_type} %> <%= $journey->{train_no} %> nach <%= $journey->{arr_name} %> #NowTräwelling #dbl" +				% if (current_user()->{is_public} & 0x02) { +					data-url="<%= url_for('/status')->to_abs->scheme('https') %>/<%= current_user->{name} %>" +				% } +				> +				<i class="material-icons left">share</i> Teilen +			</a> +		% }  	</div>  </div> diff --git a/templates/changelog.html.ep b/templates/changelog.html.ep index 693e6d4..6d56c1b 100644 --- a/templates/changelog.html.ep +++ b/templates/changelog.html.ep @@ -2,6 +2,19 @@  <div class="row">  	<div class="col s12 m1 l1"> +		1.3 +	</div> +	<div class="col s12 m11 l11"> +		<p> +			<i class="material-icons left">add</i> Teilen der aktuellen Zugfahrt. +				Wird derzeit nur auf Chrome (Android), Opera (Android) und +				Safari (iOS / macOS) unterstützt. +		</p> +	</div> +</div> + +<div class="row"> +	<div class="col s12 m1 l1">  		1.2  	</div>  	<div class="col s12 m11 l11"> | 
