<?php $this->layout('layout-loggedin', ['title' => $title, 'accounts' => $accounts, 'user' => $user]); ?>
							 | 
						|
								
							 | 
						|
								<div class="ui main text container" style="margin-top: 80px; margin-bottom: 40px;">
							 | 
						|
								
							 | 
						|
								  <h2>Send Webmentions</h2>
							 | 
						|
								
							 | 
						|
								  Source URL: <a href="<?= $url ?>" target="_blank"><?= $url ?></a>
							 | 
						|
								
							 | 
						|
								  <table class="ui very basic fixed single line unstackable table" id="send-table">
							 | 
						|
								    <thead>
							 | 
						|
								      <th class="twelve wide">URL</th>
							 | 
						|
								      <th class="four wide">Status</th>
							 | 
						|
								    </thead>
							 | 
						|
								    <tbody>
							 | 
						|
								      <tr><td colspan="2">Looking for URLs...</td></tr>
							 | 
						|
								    </tbody>
							 | 
						|
								  </table>
							 | 
						|
								
							 | 
						|
								</div>
							 | 
						|
								<script>
							 | 
						|
								var source_url = "<?= $url ?>";
							 | 
						|
								var token = "<?= $role->token ?>";
							 | 
						|
								
							 | 
						|
								$(function(){
							 | 
						|
								  $.post('/dashboard/get_outgoing_links.json', {
							 | 
						|
								    url: source_url
							 | 
						|
								  }, function(data) {
							 | 
						|
								    if(data.links.length == 0) {
							 | 
						|
								      $("#send-table tbody tr:first td").html('<div class="ui message">No links were found from the given URL. Make sure your post is marked up with <a href="http://indiewebcamp.com/h-entry">h-entry</a> and contains some links.</div>');
							 | 
						|
								      $("#send-table").removeClass("fixed").removeClass("single").removeClass("line");
							 | 
						|
								      return;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    $("#send-table tbody").html('<tr><td colspan="2"></td></tr>');
							 | 
						|
								    for(var i in data.links) {
							 | 
						|
								      $("#send-table tr:last").after('<tr data-url="'+data.links[i]+'">'
							 | 
						|
								          +'<td class="target-url">'
							 | 
						|
								            +'<div class="popup" data-content="'+data.links[i]+'"><span>'+data.links[i]+'<span></div>'
							 | 
						|
								          +'</td>'
							 | 
						|
								          +'<td class="send">'
							 | 
						|
								            +'<div class="ui active mini inline loader"></div>'
							 | 
						|
								          +'</td>'
							 | 
						|
								        +'</tr>');
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    $("#send-table tbody tr:first").remove();
							 | 
						|
								
							 | 
						|
								    // Enable popup on any values that overflowed the container
							 | 
						|
								    $(".popup").each(function(i,el){
							 | 
						|
								      if($(el).children("span").width() > $(el).width()) {
							 | 
						|
								        $(el).popup();
							 | 
						|
								      }
							 | 
						|
								    });
							 | 
						|
								
							 | 
						|
								    // Check for a webmention or pingback endpoint
							 | 
						|
								    $("#send-table tr").each(function(i,el){
							 | 
						|
								      discover_endpoint(el, false);
							 | 
						|
								    });
							 | 
						|
								
							 | 
						|
								  });
							 | 
						|
								});
							 | 
						|
								
							 | 
						|
								function discover_endpoint(row, ignore_cache) {
							 | 
						|
								  $.post("/dashboard/discover_endpoint.json", {
							 | 
						|
								    target: $(row).data("url"),
							 | 
						|
								    ignore_cache: ignore_cache
							 | 
						|
								  }, function(data){
							 | 
						|
								    var html;
							 | 
						|
								    if(data.status == 'none') {
							 | 
						|
								      html = '<div class="ui yellow horizontal label">No endpoint found</div><br><button class="send-button check-again ui button">Check Again</button>';
							 | 
						|
								    } else if(data.status == 'webmention') {
							 | 
						|
								      html = '<button class="send-button send-now ui primary button">Send Webmention</button>';
							 | 
						|
								    } else if(data.status == 'pingback') {
							 | 
						|
								      html = '<button class="send-button send-now ui primary button">Send Pingback</button>';
							 | 
						|
								    }
							 | 
						|
								    $(row).children(".send").html(html);
							 | 
						|
								    bind_send_buttons();
							 | 
						|
								  });
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								function bind_send_buttons() {
							 | 
						|
								  $(".send-button").unbind("click");
							 | 
						|
								  $(".check-again").bind("click", function(){
							 | 
						|
								    var row = $(this).parents("tr");
							 | 
						|
								    $(row).find(".send-button").addClass('loading');
							 | 
						|
								    discover_endpoint(row, true);
							 | 
						|
								  });
							 | 
						|
								  $(".send-now").bind("click", function(){
							 | 
						|
								    var row = $(this).parents("tr");
							 | 
						|
								    $(row).find(".send-button").addClass('loading');
							 | 
						|
								    // Send to the API
							 | 
						|
								    $.post("/webmention", {
							 | 
						|
								      token: token,
							 | 
						|
								      source: source_url,
							 | 
						|
								      target: $(row).data("url")
							 | 
						|
								    }, function(data){
							 | 
						|
								      $(row).find(".send-button").removeClass('loading');
							 | 
						|
								      if(data.status == 'queued') {
							 | 
						|
								        $(row).find(".send").html('<a href="'+data.location+'/details" data-status="'+data.location+'"><i class="circular inverted orange wait icon"></i></a>');
							 | 
						|
								        // TODO: check for status updates on a timer
							 | 
						|
								      } else {
							 | 
						|
								        $(row).find(".send").html('<i class="circular inverted red x icon"></i>');
							 | 
						|
								      }
							 | 
						|
								    });
							 | 
						|
								  });
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								</script>
							 | 
						|
								<style type="text/css">
							 | 
						|
								.popup {
							 | 
						|
								  word-wrap: break-word;
							 | 
						|
								}
							 | 
						|
								#send-table tbody tr {
							 | 
						|
								  height: 83px;
							 | 
						|
								}
							 | 
						|
								</style>
							 |