Difference: AjaxWebSelector (r3 vs. r2)

AjaxWebSelector

Webs

%STARTSECTION{"webs"}%

%FLEXWEBLIST{
  subwebs="none"
  header="[{"
  format="$n$indent   id:'$web',$n$indent   name:'$name',$n$indent   parent:'$parent',$n$indent   depth: $depth,$n$indent   color:'$color',$n$indent   description:'$sitemapuseto',$n$indent   nrsubwebs: $nrsubwebs,$n$indent   url: '$url'$n$indent" 
  subheader=",   subwebs:$n$indent   [{"
  separator="},{" 
  subseparator="},{" 
  subfooter="}]$n$indent"
  footer="}]$n"
}%

%ENDSECTION{"webs"}%

Webselector

%STARTINCLUDE%
%JQREQUIRE{"gradient"}% %JQREQUIRE{"simplemodal"}%



%STOPINCLUDE%

Webselector.css

%STARTATTACH{"webselector.css"}%
.weblet {
  float:left;
  padding:10px;
  margin:0px 10px 10px 0px;
  border:1px solid #ddd;
  width:100px;
  height:100px;
  position:relative;
  font-size:95%;
  overflow:hidden;
}
.weblet h2 {
  margin:0px;
  border:0px;
}
.weblet .parent {
  font-size:95%;
  font-style:italic;
}
.weblet .desc {
  margin-top:0.1em;
}
.weblet .more {
  margin-top:0.1em;
}
.weblet .more a {
  text-decoration:none;
}
#weblist .container {
  margin-top:10px;
  width:550px;
  height:390px;
  overflow-x:hidden;
  overflow-y:auto;
}
.weblet h2 {
  margin-top:0px;
  font-size:105%;
  font-weight:bold;
  color:#222;
}
.weblet.selected {
  border:1px solid red;
}
%ENDATTACH%

Webselector.js

%STARTATTACH{"webselector.js"}%
(function($) {
webSelector = {
   show: function() {
    $("#weblist").modal({
      persist:true, 
      onShow: webSelector.init
    });
    $(window).trigger("resize");
    return false;
  },

  spaceOutWikiWord: function(wikiWord) {
    return wikiWord.replace(/([a-z])([A-Z0-9]+)/g, "$1 $2");
  },

  addWeblets: function(webs, $container) {
    for (var i in webs) {
      var web = webs[i];
      var color = web.color;
      if (color == '') 
        color = 'dddddd';
      color = color.replace(/#/g, '');
      var webName = webSelector.spaceOutWikiWord(web.name);

      var $weblet = $("
"+ "

"+webName+"

"+ (web.parent?"
In "+web.parent+"
":"")+ "
"+web.description+"
"+ (web.nrsubwebs?"":"")+ ""+ ""+ "
"). appendTo($container); $weblet.gradient({to:'ffffff', from:color}); webSelector.addWeblets(web.subwebs, $container); } }, selectWeblet: function(elem) { var webId = '', webName= '', webUrl = ''; if (elem) { if ($(elem).hasClass("selected")) { return webSelector.goWeb(); } webId = $(elem).attr('id'); webName = $(elem).find("input[name=webName]").val(); webUrl = $(elem).find("input[name=webUrl]").val(); } $("#webId").val(webId); $("#webName").val(webName); $("#webUrl").val(webUrl); $("#weblist .weblet").removeClass("selected"); if (elem) $(elem).addClass("selected"); }, goWeb: function() { var webUrl = $("#webUrl").val(); if (webUrl) { window.location.href = webUrl; } return false; }, init: function() { if (typeof(webSelector.webs) == 'undefined') { var $container = $("#weblist .container"); var url = "%SCRIPTURL{view}%/%WEB%/%TOPIC%?section=webs;skin=text;contenttype=text/plain"; $.getJSON(url, function(data) { webSelector.webs = data; webSelector.addWeblets(data, $container); $(".weblet").click(function() { webSelector.selectWeblet(this); }); $("#webGo").click(webSelector.goWeb); }); $("#webName").keyup(function(e) { var webName = $(this).val(); var count = 0; var foundWeblet; if (webName) { $(".weblet").each(function() { var thisName = $(this).find("input[name=webName]").val(); if (thisName.indexOf(webName) == 0) { $(this).show(); count++; foundWeblet = this; } else { $(this).hide(); } }); } else { $(".weblet").show(); webSelector.selectWeblet(); } if (count == 1 && e.which == 13) { webSelector.selectWeblet(foundWeblet); webSelector.goWeb(); } }); } window.setTimeout(function() { $("#webName").focus(); }, 100); } } })(jQuery); %ENDATTACH%

Test

View topic | View difference side by side | History: r3 < r2 < r1 | More topic actions
 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this site is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback