Merge branch 'desktop_harry' of github.com:Rulingcom/orbit into desktop_harry
Conflicts: Gemfile.lock app/assets/javascripts/.DS_Store app/assets/stylesheets/style.css.erb app/views/layouts/_orbit_bar.html.erb
This commit is contained in:
commit
a1e74987dc
389 files changed
+6931
-1
No files matched your search
Vendored
BIN
Binary file not shown.
@@ -0,0 +1,15 @@
|
||||
// This is a manifest file that'll be compiled into including all the files listed below.
|
||||
// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
|
||||
// be included in the compiled file accessible from http://example.com/assets/application.js
|
||||
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
||||
// the compiled file.
|
||||
//
|
||||
//= require jquery
|
||||
//= require jquery_ujs
|
||||
//= require jquery-ui
|
||||
//= require jquery.tinyscrollbar.min
|
||||
//= require jquery.miniColors.min
|
||||
//= require bootstrap
|
||||
//= require orbitdesktopAPI
|
||||
//= require orbitTimeline
|
||||
//= require orbitdesktop
|
||||
@@ -0,0 +1,6 @@
|
||||
|
||||
orbitDesktop.prototype.themefolder = "desktop_themes";
|
||||
orbitDesktopAPI.prototype.notifyImgPath = "/assets/";
|
||||
alert("<%= @desktop.inspect %>")
|
||||
var od = new orbitDesktop("#ajax_container");
|
||||
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
/*
|
||||
* jQuery miniColors: A small color selector
|
||||
*
|
||||
* Copyright 2011 Cory LaViska for A Beautiful Site, LLC. (http://abeautifulsite.net/)
|
||||
*
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses
|
||||
*
|
||||
*/
|
||||
if(jQuery)(function($){$.extend($.fn,{miniColors:function(o,data){var create=function(input,o,data){var color=expandHex(input.val());if(!color)color='ffffff';var hsb=hex2hsb(color);var trigger=$('<a class="miniColors-trigger" style="background-color: #'+color+'" href="#"></a>');trigger.insertAfter(input);input.addClass('miniColors').data('original-maxlength',input.attr('maxlength')||null).data('original-autocomplete',input.attr('autocomplete')||null).data('letterCase','uppercase').data('trigger',trigger).data('hsb',hsb).data('change',o.change?o.change:null).attr('maxlength',7).attr('autocomplete','off').val('#'+convertCase(color,o.letterCase));if(o.readonly)input.prop('readonly',true);if(o.disabled)disable(input);trigger.bind('click.miniColors',function(event){event.preventDefault();if(input.val()==='')input.val('#');show(input)});input.bind('focus.miniColors',function(event){if(input.val()==='')input.val('#');show(input)});input.bind('blur.miniColors',function(event){var hex=expandHex(input.val());input.val(hex?'#'+convertCase(hex,input.data('letterCase')):'')});input.bind('keydown.miniColors',function(event){if(event.keyCode===9)hide(input)});input.bind('keyup.miniColors',function(event){setColorFromInput(input)});input.bind('paste.miniColors',function(event){setTimeout(function(){setColorFromInput(input)},5)})};var destroy=function(input){hide();input=$(input);input.data('trigger').remove();input.attr('autocomplete',input.data('original-autocomplete')).attr('maxlength',input.data('original-maxlength')).removeData().removeClass('miniColors').unbind('.miniColors');$(document).unbind('.miniColors')};var enable=function(input){input.prop('disabled',false).data('trigger').css('opacity',1)};var disable=function(input){hide(input);input.prop('disabled',true).data('trigger').css('opacity',0.5)};var show=function(input){if(input.prop('disabled'))return false;hide();var selector=$('<div class="miniColors-selector"></div>');selector.append('<div class="miniColors-colors" style="background-color: #FFF;"><div class="miniColors-colorPicker"></div></div>').append('<div class="miniColors-hues"><div class="miniColors-huePicker"></div></div>').css({top:input.is(':visible')?input.offset().top+input.outerHeight():input.data('trigger').offset().top+input.data('trigger').outerHeight(),left:input.is(':visible')?input.offset().left:input.data('trigger').offset().left,display:'none'}).addClass(input.attr('class'));var hsb=input.data('hsb');selector.find('.miniColors-colors').css('backgroundColor','#'+hsb2hex({h:hsb.h,s:100,b:100}));var colorPosition=input.data('colorPosition');if(!colorPosition)colorPosition=getColorPositionFromHSB(hsb);selector.find('.miniColors-colorPicker').css('top',colorPosition.y+'px').css('left',colorPosition.x+'px');var huePosition=input.data('huePosition');if(!huePosition)huePosition=getHuePositionFromHSB(hsb);selector.find('.miniColors-huePicker').css('top',huePosition.y+'px');input.data('selector',selector).data('huePicker',selector.find('.miniColors-huePicker')).data('colorPicker',selector.find('.miniColors-colorPicker')).data('mousebutton',0);$('BODY').append(selector);selector.fadeIn(100);selector.bind('selectstart',function(){return false});$(document).bind('mousedown.miniColors touchstart.miniColors',function(event){input.data('mousebutton',1);if($(event.target).parents().andSelf().hasClass('miniColors-colors')){event.preventDefault();input.data('moving','colors');moveColor(input,event)}if($(event.target).parents().andSelf().hasClass('miniColors-hues')){event.preventDefault();input.data('moving','hues');moveHue(input,event)}if($(event.target).parents().andSelf().hasClass('miniColors-selector')){event.preventDefault();return}if($(event.target).parents().andSelf().hasClass('miniColors'))return;hide(input)});$(document).bind('mouseup.miniColors touchend.miniColors',function(event){event.preventDefault();input.data('mousebutton',0).removeData('moving')}).bind('mousemove.miniColors touchmove.miniColors',function(event){event.preventDefault();if(input.data('mousebutton')===1){if(input.data('moving')==='colors')moveColor(input,event);if(input.data('moving')==='hues')moveHue(input,event)}})};var hide=function(input){if(!input)input='.miniColors';$(input).each(function(){var selector=$(this).data('selector');$(this).removeData('selector');$(selector).fadeOut(100,function(){$(this).remove()})});$(document).unbind('.miniColors')};var moveColor=function(input,event){var colorPicker=input.data('colorPicker');colorPicker.hide();var position={x:event.pageX,y:event.pageY};if(event.originalEvent.changedTouches){position.x=event.originalEvent.changedTouches[0].pageX;position.y=event.originalEvent.changedTouches[0].pageY}position.x=position.x-input.data('selector').find('.miniColors-colors').offset().left-5;position.y=position.y-input.data('selector').find('.miniColors-colors').offset().top-5;if(position.x<=-5)position.x=-5;if(position.x>=144)position.x=144;if(position.y<=-5)position.y=-5;if(position.y>=144)positiLine truncated
|
||||
@@ -0,0 +1,90 @@
|
||||
//for timeline parent library, will be accessable by main library and API library for other people to use.. default inherits orbitDesktopAPI
|
||||
// Harry Bomrah
|
||||
|
||||
var orbitTimeline = function(dom){
|
||||
t = this;
|
||||
this.dom = $("#"+dom);
|
||||
this.timelineHtml = $("<div class='t_bottom t_scale' id='timeline_scale'></div>");
|
||||
//this.marker = t.timelineHtml.find("#timline_marker");
|
||||
this.scale = t.timelineHtml.find("#timeline_scale");
|
||||
//this.container = t.timelineHtml.find("#t_container");
|
||||
this.events = new Array;
|
||||
this.monthList = ["","January","February","March","April","May","June","July","August","September","October","November","December"];
|
||||
this.initialize = function(){
|
||||
t.dom.html(t.timelineHtml);
|
||||
$("div.scrollbar").hide();
|
||||
t.constructTimeScale(function(timelineScale){
|
||||
console.log(timelineScale);
|
||||
$("#timeline_scale").html(timelineScale);
|
||||
var totalyearwidth =timelineScale.find(".year").length * 100;
|
||||
var totalul = 0;
|
||||
for(eve in t.events){
|
||||
t.makeBubble(t.events[eve]);
|
||||
totalul = $("#scale_wrapper ul").length
|
||||
$(".t_scale").width((totalul*350) + totalyearwidth);
|
||||
}
|
||||
|
||||
$('.tinycanvas').tinyscrollbar({ axis: 'x'});
|
||||
});
|
||||
}
|
||||
this.constructTimeScale = function(callbackFn){
|
||||
var mon ="",year="";
|
||||
var scale = $("<div id='scale_wrapper'></div>");
|
||||
$.getJSON("desktop_orbit/getevents",{"event":"papers"},function(journals){
|
||||
$.each(journals,function(x,journal){
|
||||
$.each(journal.papers,function(i,paper){
|
||||
var dt = new Date(paper.created_at);
|
||||
var cur_mon = paper.created_at.substr(5,2);
|
||||
var cur_year = dt.getFullYear();
|
||||
var cdt = paper.created_at.substr(0,7).replace("-","");
|
||||
var formname = (cur_mon.charAt(0) == "0"?cur_mon.charAt(1) : cur_mon)
|
||||
var bubbleData = {"fulldate" : t.monthList[parseInt(formname)] +", " + dt.getDate() + ", " + cur_year,"title":paper.title,"jtitle":journal.title,"coauthors":paper.coauthors,"abstract":paper.abstract,"timestamp":cdt}
|
||||
t.events.push(bubbleData);
|
||||
if(cur_year != year){
|
||||
year = cur_year;
|
||||
scale.append($("<div class='scale_region year'>"+(year+1)+"</div>"));
|
||||
}
|
||||
if(cur_mon != mon){
|
||||
mon = cur_mon;
|
||||
console.log(parseInt(cur_mon));
|
||||
scale.append($("<div class='scale_region month' data-content='"+cdt+"'><div class='month_heading'>"+t.monthList[parseInt(formname)]+"</div><div class='bubble_list'></div></div>"))
|
||||
}
|
||||
});
|
||||
})
|
||||
scale.append($("<div class='scale_region year'>"+year+"</div>"));
|
||||
if(typeof callbackFn == "function"){
|
||||
callbackFn.call(this,scale);
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
this.makeBubble = function(bubbleData){
|
||||
var totalul = $("#scale_wrapper").find("div[data-content="+bubbleData.timestamp+"] ul").length;
|
||||
var targetul = $("#scale_wrapper div[data-content="+bubbleData.timestamp+"] div.bubble_list ul").eq(totalul-1);
|
||||
if(totalul == 0){
|
||||
var ul = $("<ul></ul>");
|
||||
$("#scale_wrapper").find("div[data-content="+bubbleData.timestamp+"] div.bubble_list").append(ul);
|
||||
targetul = ul;
|
||||
}else{
|
||||
var totalli = targetul.find("li").length;
|
||||
if(totalli >= 5){
|
||||
var ul = $("<ul></ul>");
|
||||
$("#scale_wrapper").find("div[data-content="+bubbleData.timestamp+"] div.bubble_list").append(ul);
|
||||
targetul = ul;
|
||||
}
|
||||
}
|
||||
var bt = (bubbleData.title.length > 70? bubbleData.title.substr(0,70) + "..." : bubbleData.title);
|
||||
var bubble = $("<li class='bubble'><span>"+bt+"<span class='date'> - "+bubbleData.fulldate+"</span></span></li>");
|
||||
bubble.css("margin-left","25px");
|
||||
targetul.prepend(bubble);
|
||||
bubble.show();
|
||||
bubble.click(function(){
|
||||
o.toolPopup({
|
||||
parent: $(this),
|
||||
html : "<div><h3>"+bubbleData.jtitle+"</h3><span><h2>Co-Authors: </h2>"+bubbleData.coauthors+"</span><span><h2>Abstract: </h2>"+bubbleData.abstract+"</span></div>",
|
||||
height: "auto",
|
||||
width:"300px"
|
||||
});
|
||||
})//.mouseout(function(){t.oapi.toolPopup("destroy");})
|
||||
}
|
||||
}
|
||||
Executable
+1383
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,197 @@
|
||||
// JavaScript Document
|
||||
//Harry Bomrah
|
||||
var orbitDesktopAPI = function(){
|
||||
o = this;
|
||||
this.windowcounter = 0;
|
||||
this.notify = function(msg,type,time){
|
||||
//takes 3 arguments
|
||||
//msg (string) : message to display
|
||||
//type (string : success, imp, alert
|
||||
//time (int) : duration for notification in seconds
|
||||
var $notify = $("#orbitnote");
|
||||
var img, n_height;
|
||||
if(!type)type="";
|
||||
switch(type){
|
||||
case "alert":
|
||||
img = "note_alert.png";
|
||||
break;
|
||||
case "imp":
|
||||
img = "note_imp.png";
|
||||
break;
|
||||
case "success":
|
||||
img = "note_success.png";
|
||||
break;
|
||||
default:
|
||||
img = "note_alert.png";
|
||||
break;
|
||||
}
|
||||
$notify.find("img#note_img").attr("src",o.notifyImgPath+img);
|
||||
$notify.find(".note_message").text(msg);
|
||||
n_height = $notify.outerHeight();
|
||||
if(!time)time=5000; else time=time*1000;
|
||||
$notify
|
||||
.css({'top':-n_height, 'display':'block', 'opacity':0})
|
||||
.animate({top:0,opacity:1},200)
|
||||
.delay(time)
|
||||
.animate({top:-n_height,opacity:0},200);
|
||||
};
|
||||
this.executeFunc = function(func,callbackFn){
|
||||
//takes 2 arguments
|
||||
//func (object Function) : the function which has to be executed
|
||||
//callbackFn (object function) : the function for callback
|
||||
func.call(this);
|
||||
if(callbackFn){
|
||||
callbackFn.call(this,func);
|
||||
}
|
||||
};
|
||||
this.sortJSON = function(field, reverse, primer){
|
||||
//takes 3 arguments
|
||||
//field (string): it is the field on which sorting has to be done
|
||||
//reverse (boolean): this is for asc or desc
|
||||
//primer (method): for example pass parseInt for converting the field attribute in integer
|
||||
var key = function (x) {return primer ? primer(x[field]) : x[field]};
|
||||
return function (a,b) {
|
||||
var A = key(a), B = key(b);
|
||||
return ((A < B) ? -1 : (A > B) ? +1 : 0) * [-1,1][+!!reverse];
|
||||
}
|
||||
};
|
||||
this.rgb2hex = function(rgb) {
|
||||
// takes 1 parameter
|
||||
// rgb (string) : pass rgb string to convert
|
||||
rgb = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
|
||||
var hex = function(x) {
|
||||
return ("0" + parseInt(x).toString(16)).slice(-2);
|
||||
}
|
||||
return "#" + hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);
|
||||
};
|
||||
this.changeWallpaper = function(wallpaper){
|
||||
//takes 1 parameter
|
||||
//wallpaper (string): takes wallpaper and sets the wallpaper
|
||||
$("img#thmbackground").attr("src",o.wallpaperPath+wallpaper);
|
||||
o.saveWallpaper(wallpaper);
|
||||
};
|
||||
this.confirm = function(settings,callbackfn){
|
||||
//takes set of arguments in array
|
||||
//settings.buttons (array string) : name of buttons to be displayed
|
||||
//settings.highlighted (integer) : takes either 1 or 2.. will highlight the button which is passed
|
||||
//settings.message (string) : takes a string and message to be displayed on the confirmbox
|
||||
//callbackfn (object function) : function to callback
|
||||
|
||||
if(!settings.buttons)settings.buttons=["Ok","Cancel"];
|
||||
if(settings.highlighted!=1 && settings.highlighted!=2)settings.highlighted=2;
|
||||
if(!settings.message)settings.message = "Are you sure?"
|
||||
var $confirm = $("#orbitdiag");
|
||||
$confirm.find(".diag_action a").removeClass("thmc1 thmtxt").addClass("admbg admtxt");
|
||||
$confirm.find(".diag_message").text(settings.message);
|
||||
if(settings.highlighted == 1)
|
||||
$confirm.find("#diag_confirm").removeClass("admbg admtxt").addClass("thmc1 thmtxt");
|
||||
if(settings.highlighted == 2)
|
||||
$confirm.find("#diag_cancel").removeClass("admbg admtxt").addClass("thmc1 thmtxt");
|
||||
$confirm.find("#diag_confirm").text(settings.buttons[0]).one("click",function(){
|
||||
$confirm.stop(1,1).fadeOut();
|
||||
$confirm.find(".diag_action a").unbind();
|
||||
if(typeof callbackfn=="function")
|
||||
callbackfn.call(this,true);
|
||||
});
|
||||
$confirm.find("#diag_cancel").text(settings.buttons[1]).one("click",function(){
|
||||
$confirm.stop(1,1).fadeOut();
|
||||
$confirm.find(".diag_action a").unbind();
|
||||
if(typeof callbackfn=="function")
|
||||
callbackfn.call(this,false);
|
||||
});
|
||||
$confirm.stop(1,1).fadeIn();
|
||||
};
|
||||
this.getArrayfromJson = function(tjson,key){
|
||||
// returns array and takes json object and key
|
||||
//json (json object) : json object from which the key has to be extracted
|
||||
// key (string) : key which has to be extracted
|
||||
var tempArray = new Array;
|
||||
$.each(tjson,function(i,val){
|
||||
tempArray.push(val[key]);
|
||||
})
|
||||
return tempArray;
|
||||
};
|
||||
this.appWindow = function(settings,callbackfn){
|
||||
//takes set of arguments as array and gives callback
|
||||
//settings.method (string) : like open and close
|
||||
//settings.title (string) : the window title
|
||||
//settings.appid (string) : appid.. user can use this appid to open or close or refresh the window
|
||||
//settings.url (string) : it is the url if you want to force external url to open in appwindow... you have to pass extURL in appid if you want to open externalurl
|
||||
if(typeof settings == "undefined")settings = {};
|
||||
if(!settings.appid){
|
||||
o.notify("Invalid AppID.","imp",3);
|
||||
return;
|
||||
}
|
||||
if(!settings.method)settings.method = "open";
|
||||
if(settings.method == 'open'){
|
||||
var appurl = "http://www.rulingcom.com";
|
||||
o.windowcounter++;
|
||||
if(!settings.title)settings.title = "New Window "+o.windowcounter;
|
||||
if(settings.appid=="extURL"){
|
||||
if(settings.url){
|
||||
if(settings.url.substr(0,3)!="http")settings.url = "http://"+settings.url;
|
||||
var urlregex = new RegExp("^(http:\/\/www.|https:\/\/www.|ftp:\/\/www.|www.){1}([0-9A-Za-z]+\.)");
|
||||
if(urlregex.test(settings.url))
|
||||
appurl = settings.url;
|
||||
else{
|
||||
o.notify("Invalid URL","alert",3);
|
||||
return;
|
||||
}
|
||||
}
|
||||
else{
|
||||
o.notify("Invalid URL","alert",3);
|
||||
return;
|
||||
}
|
||||
}
|
||||
var whtml =$('<div id="app_frame_'+o.windowcounter+'" class="thmc2 app_frame" data-content="'+settings.appid+'"><div id="content"><div id="header" class="hh3"><div class="dtitle w2 hh3 hp" style="text-transform:capitalize;"><span class="thmtxth">'+settings.title+'</span></div><span class="icon-remove hh3 hp thmtxt"></span></div><div id="holder_'+o.windowcounter+'" class="app_holder"><iframe src="'+appurl+'" frameborder="0" scrolling="auto"></iframe><div class="clear"></div></div></div></div>');
|
||||
$(o.contentHolder).append(whtml);
|
||||
var parentwindow = $(o.contentHolder).find("div#app_frame_"+o.windowcounter);
|
||||
var app_holder_height = parentwindow.height() - 72;
|
||||
var app_holder_width = parentwindow.width();
|
||||
parentwindow.find("iframe").attr({"height":app_holder_height,"width":app_holder_width});
|
||||
parentwindow.find("div.app_holder").height(app_holder_height);
|
||||
parentwindow.find("span.icon-remove").click(function(){
|
||||
parentwindow.remove();
|
||||
})
|
||||
}
|
||||
if(typeof callbackfn=="function"){
|
||||
callbackfn.call(this);
|
||||
}
|
||||
};
|
||||
this.toolPopup = function(settings){
|
||||
if(settings == "destroy"){
|
||||
$(".desktop_toolpopup").hide("fold",function(){
|
||||
$(this).remove();
|
||||
$(this).parent().css("position","");
|
||||
|
||||
})
|
||||
return;
|
||||
}
|
||||
if(settings.parent){
|
||||
if(settings.parent.find("div.desktop_toolpopup").length == 0){
|
||||
settings.height = (!settings.height ? "50px" : settings.height);
|
||||
settings.width = (!settings.width ? "150px" : settings.width);
|
||||
settings.html = (!settings.html ? "" : settings.html);
|
||||
var leftpos = settings.parent.width();
|
||||
var toolpopup = $("<div class='desktop_toolpopup' style='height:"+settings.height+";width:"+settings.width+"; left:"+leftpos+"px;'><span>"+settings.html+"</span></div>");
|
||||
settings.parent.css("position","relative");
|
||||
settings.parent.prepend(toolpopup);
|
||||
toolpopup.click(function(event){
|
||||
event.stopPropagation();
|
||||
});
|
||||
|
||||
toolpopup.show("fold",function(){
|
||||
$(document).unbind("click");
|
||||
$(document).one("click",function(e){
|
||||
toolpopup.hide("fold",function(){
|
||||
toolpopup.remove();
|
||||
settings.parent.css("position","");
|
||||
});
|
||||
})
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
orbitDesktopAPI.prototype.notifyImgPath = "temp";
|
||||
orbitDesktopAPI.prototype.wallpaperPath = "temp";
|
||||
Reference in new issue
Block a user