Migrating Legacy Web Applications to AngularJSBTI360
JavaScript applications can be like a lawn, without discipline and attention, over time the weeds of technical debt can get out of control. In this talk Ryan will walk us through best practices for migrating legacy JavaScript applications to Angular, a modern JavaScript framework!
Migrating Legacy Web Applications to AngularJSBTI360
JavaScript applications can be like a lawn, without discipline and attention, over time the weeds of technical debt can get out of control. In this talk Ryan will walk us through best practices for migrating legacy JavaScript applications to Angular, a modern JavaScript framework!
1. Check out our photos of the Pixies' Metro show
"asc";
var params =
sort: mySort,
ajaxComponent: componentId,
startIndex: myStart,
showAll: showAllComments
;
jQuery.ajax(
url: url,
data: (params),
success: function (data)
jQuery("#"+componentId+"_PaginationBottom").remove();
jQuery("#"+componentId+"_commentContent .brandNewComment").remove();
jQuery("#BlogComments .sortSpinner").hide();
if (myStart == "1") jQuery("#"+componentId+"_commentContent").html(data);
else jQuery("#"+componentId+"_commentContent").append(data);
);
function removeEdit(oid)
if (oid)
var cont = jQuery("#BlogComments-comment-"+oid).closest(".brandNewComment");
cont.find(".newCommentOptions").fadeOut("fast", function()
jQuery(this).remove();
);
function getComment(oid, commentLimit)
2. var url = "/Bleader/archives/2015/06/12/check-out-our-photos-of-the-pixies-metro-show";
var limitMsg = commentLimit?'':'';
if (oid)
var params =
ajaxComponent: componentId,
commentOid: oid
;
jQuery.ajax(
url: url,
data: (params),
success: function (data)
if (!jQuery.trim(jQuery("#"+componentId+"_commentContent").html()))
jQuery("#"+componentId+"_commentContent").append(limitMsg+data).find(".brandNewComment")
.fadeIn("fast");
else
jQuery("#"+componentId+"_commentContent").children("div.comment, div.brandNewComment,
div.limitMsg").filter(":last").after(limitMsg+data).parent().find(".brandNewComment").fadeIn("fast");
var t=setTimeout(function()removeEdit(oid),300000);
var myTotal = parseInt(jQuery("#comments_total").text(), 10);
myTotal++;
updateCommentTotals(false,myTotal);
);
3. function doLikeComment(e)
e.preventDefault();
if (!this.clicked)
function reportComment(e)
e.preventDefault();
e.stopPropagation();
var oid = jQuery(this).attr("rel");
var elem = jQuery("#"+oid+"_report");
elem.click(function(e)e.stopPropagation();)
if (!elem.is(":visible"))
jQuery("#BlogComments .reportCommentContainer").hide();
if (elem.is(":empty"))
var params =
oid: oid,
ajaxComponent: "ReportComment"
;
jQuery.ajax(
4. url: "/gyrobase/Tools/ReportComment",
data: (params),
success: function (data)
elem.html(data);
elem.fadeIn("fast");
);
else
elem.fadeIn("fast");
// attach close event handler to the html
jQuery("html").one("click", function()
jQuery("#BlogComments .reportCommentContainer:visible").hide();
);
function closeReport(obj)
jQuery(obj).closest(".reportCommentContainer").fadeOut("fast");
function submitReport(e)
var params = jQuery(e).closest("form").serialize()+"ajaxComponent=ReportComment";
jQuery.ajax(
url: "/gyrobase/Tools/ReportComment",
type: "POST",
5. data: (params),
success: function (data)
jQuery(e).closest(".reportCommentContainer").html(data);
);
(function($)
var subscribed=false;
function showFollowPanel(e)
e.preventDefault();
myPanel = $(this).parent().next(".togglePanel");
myPanel.fadeIn("fast");
function doSubscribe(obj)
var myPanel = obj.parent().next(".togglePanel");
myPanel.fadeIn("fast");
if (!subscribed)
var myLink = obj.parent();
var myLoader = myPanel.children(".loading");
var myUpdater = myPanel.children(".ajaxUpdater");
var params =
object: myPanel.attr("data-toolsoid"),
macro: myPanel.attr("data-toolsajaxmacro"),