Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
pub:ios-apps [2014/08/26 22:48] – angelegt Marco Kragepub:ios-apps [2014/10/21 13:28] Marco Krage
Zeile 1: Zeile 1:
 ====== iOS Apps ====== ====== iOS Apps ======
  
-===== Grafik =====+<html> 
 +<style> 
 +.app { 
 +  list-style: none; 
 +  overflow: auto; 
 +  margin-bottom: 1em; 
 +
 +.app .icon{ 
 +  float:left; 
 +  margin-right: .5em; 
 +
 +.app .icon img { 
 + max-width: 42px; 
 + height: auto; 
 +
 +</style> 
 +<div id="apps"> 
 +Castro 723142770 fooo //tydligapp.com/ #ein postcast 
 +Spotify 324684580 #Musik 
 +Google Maps 585027354 #Karten 
 +Tydling 721606556 http://tydligapp.com/ #Rechner 
 +Dropbox 327630330 #Sync 
 +Reeder 697846300 #RSS 
 +Schritzähler 712286167 
 +Wordpress 335703880 #Blog 
 +Pocket 309601447 #ReadLater 
 +Tweetbot 722294701 #Twitter 
 +finanzblick 401912744 #Kontostand 
 +Photosynth 430065256 #Pano 
 +Photosphere 904418768 #Pano 
 +Hyperlapse 740146917 #Timelapse 
 +Spritmonitor 616137163 
 +Scanbot 834854351 
 +HDE OTP 571240327 
 +Barcode 522354642 
 +PhotoPresenter 690440141 
 +</div> 
 +<script> 
 +String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g, '');}; 
 +jQuery(document).ready(function($){
  
-===== Timelapse =====+  var data $('#apps').text(); 
 +  var apps parseData(data); 
 +  console.log('apps', apps); 
 +  updateLayout('#apps', apps);
  
 +function parseData(data) {
 +  var lines = data.split("\n");
 +  var apps = [];
 +
 +  $.each(lines, function(i, line) {
 +    var app = {};
 +    
 +    if(line.trim() == "") { return; }
 +    
 +    var preSplit = line.trim().split('#');
 +    (preSplit[1]) ? app.desc = preSplit[1].trim() : '';
 +    
 +    var parts = preSplit[0].split(' ');
 +    
 +    app.name = parts.shift();
 +    
 +    $.each(parts, function(n, part) {
 +      if(typeof app.id == "undefined" && new RegExp('^[0-9]+$').test(part)) {
 +        app.id = part;
 +        return;
 +      }
 +      if(typeof app.url == "undefined" && (new RegExp('^http').test(part) || new RegExp('^//').test(part))) {
 +        app.url = part;
 +        return;
 +      }
 +    });    
 +
 +    apps.push(app);
 +    
 +  });
 +  
 +  return apps;
 +}
 +
 +function updateLayout(selector, apps){
 +  var $container = $(selector).empty();
 +
 +  var $list = $('<ul class="applist"/>').appendTo($container);
 +  
 +  $.each(apps, function(i, app){
 +    
 +    var $entry = $($('#app-tpl').html()).appendTo($list);
 +        
 +    $entry.find('.name').text(app.name);
 +
 +    if(app.id) {
 +      var $itunesLink = $('<a class="link itunes"/>').attr('href', 'https://itunes.apple.com/de/app/id'+app.id);
 +      $entry.find('.name').wrapInner($itunesLink);
 +      $entry.find('.icon').wrap($itunesLink);
 +      getItunesData(app, $entry);
 +    }
 +    
 +    if(app.url) { 
 +      var $webLink = $('<a class="link web"/>').attr('href', app.url).text('Webseite');
 +      $entry.find('.homepage').append($webLink);
 +    }
 +    
 +    $entry.find('.desc').text(app.desc);  
 +  
 +  });
 +
 +}
 +
 +function getItunesData(app, $entry) {
 +  console.log('getItunesData', app);
 +  $.getJSON('https://itunes.apple.com/de/lookup?callback=?&id='+app.id, function( data ) {
 +    if(data.resultCount == 0) { return false; } 
 +    $image = $('<img />').attr('src', data.results[0].artworkUrl60);
 +    $entry.find('.icon').append($image);
 +  });
 +}
 +
 +}); // END jQuery.ready
 +</script>
 +<script id="app-tpl" type="text/template">
 + <li class="app">
 +    <div class="icon"></div>
 +    <div class="name"></div>
 +    <div>
 +      <span class="desc"></span>
 +      <span class="homepage"></span>
 +    </div>
 +  </li>
 +</script>
 +
 +
 +</html>