Rune Grønkjærs Blog
Abonnér på mit feed

Curriculum Vitae v1.1

Jeg har skrevet en klasse der kan indeholde et CV og som har et par hjælpemetoder til at udskrive CV’ets data. Et jQuery plugin sørger for at skrive CV’et ud i en template, som man skal have lavet i html på forhånd. I dette tilfælde har jeg skjult templaten.

CV klassen

CV = function() { };
CV.prototype.fillTemplate = function(jQTemplate) {
  var marker = jQuery('
'); for (var key in this) { this.runThroughInfo(jQTemplate.find('.' + key), this[key], marker); } marker.remove(); }; CV.prototype.runThroughInfo = function(jQTemplate, infoArr, marker) { jQTemplate.after(marker); jQTemplate.remove(); for (var i = 0; i < infoArr.length; i++) { var clone = jQTemplate.clone(); marker.after(clone); for (var key in infoArr[i]) { this.insertInfo(clone.find('.' + key), infoArr[i][key]); } } }; CV.prototype.insertInfo = function(jQEle, str) { if (typeof str === 'object') { var tmpStr = str; str = ''; for (var i = 0; i < tmpStr.length; i++) { str += tmpStr[i] + (i == tmpStr.length - 1 ? '' : '
'); } } if (str) { jQEle.append(str.toString()); } else { jQEle.remove(); } };

writeCV jQuery Plugin

jQuery.fn.writeCV = function(cv) {
  if (this[0]) {
    this.each(function() {
      cv.fillTemplate(jQuery(this));
    });
  }
  return this;
};

jQuery document Ready

jQuery(function() {
  var externals = jQuery('#RunesCV').find('a').not('[href^="http://rune.gronkjaer.dk"]');
  for (var i = 0; i < externals.length; i++) {
    externals[i].removeAttribute('onclick');
  }

  jQuery('#TranslateCV').click(translateCV);
  jQuery('#CommentCV').click(function() {
    jQuery('#TranslateCV').click(translateCV);

    jQuery('#RunesCV').css('display', 'none');
    jQuery('#CVHtml').remove();
    var runesCVMedKommentarer = jQuery('#RunesCVMedKommentarer').css('display', 'block');
    jQuery('html, body').animate({
      scrollTop: runesCVMedKommentarer.offset().top
    }, 1000);
  });
});

function translateCV() {
  var cvHtml = jQuery('#CVHtml');
  if (!cvHtml[0]) {
    var runesCV = new CV();

    runesCV.address =  [{
                              name: 'Rune Øllgaard Grønkjær',
                              street: 'Grundtvigsvej 35, 1. th.',
                              zipCity: '7400 Herning',
                              mobile: '30268797'
                        }];

    runesCV.qualifications = [{ primaryCompetencies: ['Udvikling af avancerede websites',
                                                      'Avancerede grafiske brugergrænseflader til web',
                                                      'ASP.NET og javascript',
                                                      'Umbraco CMS',
                                                      'Dynamicweb CMS'],
                                secondaryCompetencies: 'SQL, LINQ, CSS, XHTML, AJAX.NET, Custom ajax, Photoshop, Dynamicweb implementation, Dynamicweb ecommerce'
                             }];

    runesCV.workExperience = [{ place: 'Co3 A/S',
                                job: 'Webudvikler',
                                period: '2007 - 2010'
                             }, { place: 'Tea Solutions',
                                job: 'Webudvikler',
                                period: '2010 - ?'
                              }];
    runesCV.education = [{ place: 'Erhvervsakademi midtjylland',
                           educationName: 'Datamatiker',
                           period: '2005 – 2007',
                           focus: 'ASP.NET'
                         },
                         { place: 'IT-akademi midtjylland',
                           educationName: 'Multimedie designer',
                           period: '2001 – 2003',
                           focus: 'Brugervenlighed og design'
                         },
                         { place: 'Vestjyllands handelsskole',
                           educationName: 'Højere handelsexamen',
                           period: '1997 – 2000',
                           focus: 'Matematisk linie'}];

    runesCV.languages = [{ language: 'Engelsk',
                           level: 'Læser og skriver'
                         },
                         { language: 'Tysk',
                           level: 'Kendskab'}];
    runesCV.ITKnowledge = [{ general: 'Har pænt høje kvalifikationer inden for IT, EDB og ETB.'}];

    jQuery('#RunesCV, #RunesCVMedKommentarer').css('display', 'none');
    var cvTemplate = jQuery('#RunesCVTemplate');
    cvHtml = cvTemplate.writeCV(runesCV);
    cvHtml.attr('id', 'CVHtml').css('display', 'block');
    cvTemplate.after(cvHtml);
    jQuery('html, body').animate({
      scrollTop: cvHtml.offset().top
    }, 1000);
  }       
}

Forstår du ikke mit CV?

Så prøv med kommentarer:

Eller giv helt op og oversæt mit CV ved at køre ovenstående script
English version