diff --git a/client/galaxy/scripts/onload.js b/client/galaxy/scripts/onload.js index e8fbdb0d731..5077ef83f54 100644 --- a/client/galaxy/scripts/onload.js +++ b/client/galaxy/scripts/onload.js @@ -11,14 +11,20 @@ window.Backbone = Backbone; // console.debug('globals loaded:', window.jQuery, window.Backbone, '...'); // these are galaxy globals not defined in the provider (although they could be - but why encourage that?) -window.panels = require("layout/panel"); +import Panel from "layout/panel"; +window.panels = Panel; + // using extend bc there are multiple fns/objs to decorate the window with -_.extend(window, require("layout/modal")); -window.async_save_text = require("utils/async-save-text"); +import layout_modal from "layout/modal"; +_.extend(window, layout_modal); +// _.extend(window, require("layout/modal")); +import async_save_text from "utils/async-save-text"; +window.async_save_text = async_save_text; import POPUPMENU from "ui/popupmenu"; window.make_popupmenu = POPUPMENU.make_popupmenu; window.make_popup_menus = POPUPMENU.make_popup_menus; -window.init_tag_click_function = require("ui/autocom_tagging"); +import init_tag_click_function from 'ui/autocom_tagging'; +window.init_tag_click_function = init_tag_click_function; import TOURS from "mvc/tours"; import QUERY_STRING from "utils/query-string-parsing"; // console.debug( 'galaxy globals loaded' ); diff --git a/static/maps/admin.toolshed.js.map b/static/maps/admin.toolshed.js.map index bd87f7bb481..60fd946f214 100644 --- a/static/maps/admin.toolshed.js.map +++ b/static/maps/admin.toolshed.js.map @@ -1 +1 @@ -{"version":3,"sources":["admin.toolshed.js"],"names":["define","AdminToolshedRouter","initialize","Backbone","mod_shed_list_view","mod_categories_view","routes","mod_repository_view","sheds","queue","workflows","status","Router","extend","this","routesHit","history","on","bind","trackPageview","window","","navigate","status/r/:repositories","GalaxyAdminToolshedApp","View","app_config","known_views","Galaxy","admintoolshedapp","trigger","replace","GalaxyApp","adminShedListView","admin_toolshed_router","tool_shed","adminShedCategoryView","category_id","adminRepoQueueView","reDraw","mod_repoqueue_view","RepoQueueView","adminRepositoryView","ShedListView","repository_id","adminShedCategoriesView","repositories","CategoryView","adminRepoStatusView","adminWorkflowsView","mod_repositories_view","Category","start","pushState","RepoDetails","split","mod_repo_status_view","RepoStatus","mod_workflows_view","Workflows"],"mappings":"aAAAA,QAEQ,8BAiBIC,+BACAC,iCACI,+BACA,qCACAC,gCAGQ,+BAIR,SACHC,EAnBLC,EAqBIC,EACIC,EACAC,EACAC,EACAC,GAEAC,IAAAA,EANIR,SAAAS,OAAAC,QAOJX,WAAA,WACAY,KAAAC,UAAA,EAtByCZ,SAAAa,QAAAC,GAKrC,QAqBR,WAnBYH,KAAKC,aAETD,MAEJA,KAAKI,KAAK,QAASJ,KAAKK,gBAuBpBC,QADJC,GAEO,YACHb,MAAKc,YACRb,MAAA,QACJC,UAAA,YAtCLa,yBAAA,SAoBQZ,OAAQ,SAqBZa,0BAAkCC,aAClCC,sCAAY,eACRC,2CAII,cAYIC,KAAAA,WADJd,KAEOC,UAAA,EACHa,OAAOC,QAAAA,OAJff,KAAAQ,SAAA,KAAAQ,SAAA,EAAAC,SAAA,OAwFR,OACIC,UA9EmBH,SAAiBI,KAAAA,QAC3BP,YALLC,aAOKO,YAGGN,QACAA,SACIO,aADmD,eAD3D,gBAUJjC,WAAKgC,WAIDN,OAAIA,iBAAOC,KACPD,KAAAA,sBAAwBQ,IAAAA,EAEpBC,KAAAA,sBAAaA,GAAAA,cAAAA,WAFjBT,OAAAC,iBAAAS,mBAIGV,OAAAC,iBAAAS,mBAAAC,SAGKJ,OAAAA,iBAAqBJ,mBADzB,IAAAS,EAAAC,gBAKP3B,KAAAoB,sBAAAjB,GAAA,kBAAA,WAhBLW,OAAAC,iBAAAI,kBAkBKC,OAAAA,iBAAyBD,kBAAoBM,SAK1CX,OAAOC,iBAAiBa,kBAAoBH,IAAOnC,EAAAuC,eAAA7B,KAAnDoB,sBAAAjB,GAAA,mBAAA,SADJkB,GAQYA,OAAAA,iBAAqBJ,wBACrBa,OAAAA,iBAAeA,wBAAAA,QAHvBT,UAAAA,EAAAJ,QAAA,MAAA,SAQHG,OAAAA,iBAAyBW,wBAC1BC,IAAAA,EACFC,cACalB,UAAAA,EAAiBmB,QAAAA,MAAqB,WAIhDlC,KAJDoB,sBAIOjB,GAAA,qBAAA,SACHW,EAGHS,GAEAH,OAAAA,iBAAyBE,sBACtBR,OAAOC,iBAAiBoB,sBAAoBV,QACrCV,UAAAA,EAAiBoB,QAAAA,MAAmBV,OACxCF,YAAAA,IAHXT,OAAAC,iBAAAO,sBAAA,IAAAc,EAAAC,UAQiBC,UAAQC,EAAFtB,QAAvB,MAAA,OACHM,YAAAA,MAGLvB,KAAAoB,sBAAAjB,GAAA,mBAAA,SApKRkB,EA2HoBS,GAEIhB,OAAOC,iBAAiBa,oBACxBd,OAAOC,iBAAiBa,oBAAoBH,QACxCJ,UAAWA,EAAUJ,QAAQ,MAAO,OACpCa,cAAeA,IAGnBhB,OAAOC,iBAAiBa,oBAAsB,IAAInC,EAAoB+C,aAE9DnB,UAAWA,EAAUJ,QAAQ,MAAO,OACpCa,cAAeA,MAK/B9B,KAAKoB,sBAAsBjB,GAAG,eAAgB,SAC1C6B,GAEIlB,OAAOC,iBAAiBmB,oBACxBpB,OAAOC,iBAAiBmB,oBAAoBT,QACxCO,aAAcA,EAAaS,MAAM,OAGrC3B,OAAOC,iBAAiBmB,oBAAsB,IAAIQ,EAAqBC,YACjEX,aAAcA,EAAaS,MAAM,SAI/CzC,KAAKoB,sBAAsBjB,GAAG,kBAAmB,WACzCW,OAAOC,iBAAiBoB,mBACxBrB,OAAOC,iBAAiBoB,mBAAmBV,SAE3CX,OAAOC,iBAAiBoB,mBAAqB,IAAIS,EAAmBC,YAI5ExD,SAASa,QAAQoC,OAAQC,WAAW","file":"../scripts/admin.toolshed.js","sourcesContent":["define(\n [\n \"mvc/toolshed/shed-list-view\",\n \"mvc/toolshed/categories-view\",\n \"mvc/toolshed/repositories-view\",\n \"mvc/toolshed/repository-view\",\n \"mvc/toolshed/repository-queue-view\",\n \"mvc/toolshed/repo-status-view\",\n \"mvc/toolshed/workflows-view\"\n ],\n function(\n mod_shed_list_view,\n mod_categories_view,\n mod_repositories_view,\n mod_repository_view,\n mod_repoqueue_view,\n mod_repo_status_view,\n mod_workflows_view\n ) {\n var AdminToolshedRouter = Backbone.Router.extend({\n initialize: function() {\n this.routesHit = 0;\n // keep count of number of routes handled by the application\n Backbone.history.on(\n \"route\",\n function() {\n this.routesHit++;\n },\n this\n );\n this.bind(\"route\", this.trackPageview);\n },\n\n routes: {\n \"\": \"toolsheds\",\n sheds: \"toolsheds\",\n queue: \"queue\",\n workflows: \"workflows\",\n \"status/r/:repositories\": \"status\",\n status: \"status\",\n \"categories/s/:tool_shed\": \"categories\",\n \"category/s/:tool_shed/c/:cateory_id\": \"repositories\",\n \"repository/s/:tool_shed/r/:repository_id\": \"repository\"\n },\n\n /**\n * If more than one route has been hit the user did not land on current\n * page directly so we can go back safely. Otherwise go to the home page.\n * Use replaceState if available so the navigation doesn't create an\n * extra history entry\n */\n back: function() {\n if (this.routesHit > 1) {\n window.history.back();\n } else {\n this.navigate(\"#\", { trigger: true, replace: true });\n }\n }\n });\n\n var GalaxyAdminToolshedApp = Backbone.View.extend({\n app_config: {\n known_views: [\n \"toolsheds\",\n \"queue\",\n \"status\",\n \"categories\",\n \"repositories\",\n \"repoository\"\n ]\n },\n\n initialize: function() {\n Galaxy.admintoolshedapp = this;\n this.admin_toolshed_router = new AdminToolshedRouter();\n\n this.admin_toolshed_router.on(\"route:queue\", function() {\n if (Galaxy.admintoolshedapp.adminRepoQueueView) {\n Galaxy.admintoolshedapp.adminRepoQueueView.reDraw();\n } else {\n Galaxy.admintoolshedapp.adminRepoQueueView = new mod_repoqueue_view.RepoQueueView();\n }\n });\n this.admin_toolshed_router.on(\"route:toolsheds\", function() {\n if (Galaxy.admintoolshedapp.adminShedListView) {\n Galaxy.admintoolshedapp.adminShedListView.reDraw();\n } else {\n Galaxy.admintoolshedapp.adminShedListView = new mod_shed_list_view.ShedListView();\n }\n });\n this.admin_toolshed_router.on(\"route:categories\", function(\n tool_shed\n ) {\n if (Galaxy.admintoolshedapp.adminShedCategoriesView) {\n Galaxy.admintoolshedapp.adminShedCategoriesView.reDraw({\n tool_shed: tool_shed.replace(/\\//g, \"%2f\")\n });\n } else {\n Galaxy.admintoolshedapp.adminShedCategoriesView = new mod_categories_view.CategoryView(\n { tool_shed: tool_shed.replace(/\\//g, \"%2f\") }\n );\n }\n });\n this.admin_toolshed_router.on(\"route:repositories\", function(\n tool_shed,\n category_id\n ) {\n if (Galaxy.admintoolshedapp.adminShedCategoryView) {\n Galaxy.admintoolshedapp.adminShedCategoryView.reDraw({\n tool_shed: tool_shed.replace(/\\//g, \"%2f\"),\n category_id: category_id\n });\n } else {\n Galaxy.admintoolshedapp.adminShedCategoryView = new mod_repositories_view.Category(\n {\n tool_shed: tool_shed.replace(/\\//g, \"%2f\"),\n category_id: category_id\n }\n );\n }\n });\n this.admin_toolshed_router.on(\"route:repository\", function(\n tool_shed,\n repository_id\n ) {\n if (Galaxy.admintoolshedapp.adminRepositoryView) {\n Galaxy.admintoolshedapp.adminRepositoryView.reDraw({\n tool_shed: tool_shed.replace(/\\//g, \"%2f\"),\n repository_id: repository_id\n });\n } else {\n Galaxy.admintoolshedapp.adminRepositoryView = new mod_repository_view.RepoDetails(\n {\n tool_shed: tool_shed.replace(/\\//g, \"%2f\"),\n repository_id: repository_id\n }\n );\n }\n });\n this.admin_toolshed_router.on(\"route:status\", function(\n repositories\n ) {\n if (Galaxy.admintoolshedapp.adminRepoStatusView) {\n Galaxy.admintoolshedapp.adminRepoStatusView.reDraw({\n repositories: repositories.split(\"|\")\n });\n } else {\n Galaxy.admintoolshedapp.adminRepoStatusView = new mod_repo_status_view.RepoStatus(\n { repositories: repositories.split(\"|\") }\n );\n }\n });\n this.admin_toolshed_router.on(\"route:workflows\", function() {\n if (Galaxy.admintoolshedapp.adminWorkflowsView) {\n Galaxy.admintoolshedapp.adminWorkflowsView.reDraw();\n } else {\n Galaxy.admintoolshedapp.adminWorkflowsView = new mod_workflows_view.Workflows();\n }\n });\n\n Backbone.history.start({ pushState: false });\n }\n });\n\n return {\n GalaxyApp: GalaxyAdminToolshedApp\n };\n }\n);\n"]} \ No newline at end of file +{"version":3,"sources":["admin.toolshed.js"],"names":["define","initialize","Backbone","mod_shed_list_view","mod_categories_view","mod_repositories_view","routes","mod_repoqueue_view","sheds","queue","AdminToolshedRouter","Router","extend","status","this","routesHit","history","on","bind","trackPageview","window","workflows","status/r/:repositories","categories/s/:tool_shed","GalaxyAdminToolshedApp","app_config","back","Galaxy","admintoolshedapp","navigate","trigger","replace","GalaxyApp","View","known_views","tool_shed","admin_toolshed_router","adminShedCategoryView","category_id","adminRepoQueueView","reDraw","adminShedListView","adminRepositoryView","ShedListView","repository_id","adminShedCategoriesView","CategoryView","adminWorkflowsView","Category","pushState","mod_repository_view","RepoDetails","repositories","adminRepoStatusView","split","mod_repo_status_view","RepoStatus","mod_workflows_view","Workflows","start"],"mappings":"kCAAAA,QAEQ,8BAFRA,+BAmBQ,iCACIC,+BACI,qCACA,gCACAC,+BAIK,SAGLC,EACHC,EAlBLC,EAoBIC,EACIC,EACAC,EACAC,GAEA,IAAAC,EAAAR,SAA0BS,OALtBC,QAMJC,WAAQ,WACRC,KAAAC,UAAA,EAEAb,SAAAc,QAAAC,GAvByC,QAMrC,WAoBRH,KAAAC,aAjBQD,MAEJA,KAAKI,KAAK,QAASJ,KAAKK,gBAsBxBb,QACIc,GAAAA,YACHZ,MAAM,YACHC,MAAA,QACHY,UAAA,YACJC,yBAAA,SAtCLT,OAAA,SAqBQU,0BAA2B,aAoB/BC,sCAAuCZ,eACvCa,2CAAY,cAgBJC,KAAA,WACIC,KAAAA,UAAOC,EACVR,OAAMJ,QAAAU,OAENZ,KAAAe,SAAA,KAAAC,SAAA,EAAAC,SAAA,OAmFb,OACIC,UA/Ee9B,SAAA+B,KAAArB,QACHe,YACHO,aALL,YAOA,QAGI,SACIP,aACIQ,eADmD,gBAQ9DlC,WAZD,WAaA0B,OAAKS,iBAALtB,KAIIA,KAAAsB,sBAAWR,IAAiBS,EAEpBF,KAAAA,sBAAWA,GAAAA,cAAkB,WAC7BG,OAAAA,iBAAaA,mBAFoCX,OAArDC,iBAAAW,mBAAAC,SAKAb,OAAOC,iBAAiBS,mBAAxB,IAAgD9B,EAAIF,gBAChDS,KAAAsB,sBADJnB,GAAA,kBAAA,WAMHU,OAAAC,iBAAAa,kBAhBLd,OAAAC,iBAAAa,kBAAAD,SAsBQb,OAAOC,iBAAiBc,kBAA5B,IAAiDvC,EAAAwC,eAGzCC,KAAAA,sBAAeA,GAAAA,mBAAAA,SAFgCT,GAKnDR,OAAOC,iBAAiBc,wBAEhBP,OAAAA,iBAAWA,wBADfK,QAEII,UAAAA,EAAeA,QAAAA,MAAAA,SAb/BjB,OAAAC,iBAAAiB,wBAAA,IAAAzC,EAAA0C,cAkBKV,UAAAA,EAAyBL,QAAA,MAAgB,WAIajB,KAAAsB,sBAAnDnB,GAAA,qBAAA,SAGHkB,EACGR,GARRA,OAAAC,iBAAAS,sBAaKD,OAAAA,iBAAyBC,sBAAmBG,QACzCb,UAAOC,EAAiBmB,QAAAA,MAAAA,OACxBpB,YAAOC,IAGVD,OAAAC,iBAAAS,sBAAA,IAAAhC,EAAA2C,UA1CWb,UAAWA,EAAUJ,QAAQ,MAAO,OA6CpDO,YAAyBW,MAK7BjB,KAAAA,sBAAWR,GAAAA,mBAAAA,SADfW,EApKRS,GA6HwBjB,OAAOC,iBAAiBc,oBACxBf,OAAOC,iBAAiBc,oBAAoBF,QACxCL,UAAWA,EAAUJ,QAAQ,MAAO,OACpCa,cAAeA,IAGnBjB,OAAOC,iBAAiBc,oBAAsB,IAAIQ,EAAoBC,aAE9DhB,UAAWA,EAAUJ,QAAQ,MAAO,OACpCa,cAAeA,MAK/B9B,KAAKsB,sBAAsBnB,GAAG,eAAgB,SAC1CmC,GAEIzB,OAAOC,iBAAiByB,oBACxB1B,OAAOC,iBAAiByB,oBAAoBb,QACxCY,aAAcA,EAAaE,MAAM,OAGrC3B,OAAOC,iBAAiByB,oBAAsB,IAAIE,EAAqBC,YACjEJ,aAAcA,EAAaE,MAAM,SAI/CxC,KAAKsB,sBAAsBnB,GAAG,kBAAmB,WACzCU,OAAOC,iBAAiBmB,mBACxBpB,OAAOC,iBAAiBmB,mBAAmBP,SAE3Cb,OAAOC,iBAAiBmB,mBAAqB,IAAIU,EAAmBC,YAI5ExD,SAASc,QAAQ2C,OAAQV,WAAW","file":"../scripts/admin.toolshed.js","sourcesContent":["define(\n [\n \"mvc/toolshed/shed-list-view\",\n \"mvc/toolshed/categories-view\",\n \"mvc/toolshed/repositories-view\",\n \"mvc/toolshed/repository-view\",\n \"mvc/toolshed/repository-queue-view\",\n \"mvc/toolshed/repo-status-view\",\n \"mvc/toolshed/workflows-view\"\n ],\n function(\n mod_shed_list_view,\n mod_categories_view,\n mod_repositories_view,\n mod_repository_view,\n mod_repoqueue_view,\n mod_repo_status_view,\n mod_workflows_view\n ) {\n var AdminToolshedRouter = Backbone.Router.extend({\n initialize: function() {\n this.routesHit = 0;\n // keep count of number of routes handled by the application\n Backbone.history.on(\n \"route\",\n function() {\n this.routesHit++;\n },\n this\n );\n this.bind(\"route\", this.trackPageview);\n },\n\n routes: {\n \"\": \"toolsheds\",\n sheds: \"toolsheds\",\n queue: \"queue\",\n workflows: \"workflows\",\n \"status/r/:repositories\": \"status\",\n status: \"status\",\n \"categories/s/:tool_shed\": \"categories\",\n \"category/s/:tool_shed/c/:cateory_id\": \"repositories\",\n \"repository/s/:tool_shed/r/:repository_id\": \"repository\"\n },\n\n /**\n * If more than one route has been hit the user did not land on current\n * page directly so we can go back safely. Otherwise go to the home page.\n * Use replaceState if available so the navigation doesn't create an\n * extra history entry\n */\n back: function() {\n if (this.routesHit > 1) {\n window.history.back();\n } else {\n this.navigate(\"#\", { trigger: true, replace: true });\n }\n }\n });\n\n var GalaxyAdminToolshedApp = Backbone.View.extend({\n app_config: {\n known_views: [\n \"toolsheds\",\n \"queue\",\n \"status\",\n \"categories\",\n \"repositories\",\n \"repoository\"\n ]\n },\n\n initialize: function() {\n Galaxy.admintoolshedapp = this;\n this.admin_toolshed_router = new AdminToolshedRouter();\n\n this.admin_toolshed_router.on(\"route:queue\", function() {\n if (Galaxy.admintoolshedapp.adminRepoQueueView) {\n Galaxy.admintoolshedapp.adminRepoQueueView.reDraw();\n } else {\n Galaxy.admintoolshedapp.adminRepoQueueView = new mod_repoqueue_view.RepoQueueView();\n }\n });\n this.admin_toolshed_router.on(\"route:toolsheds\", function() {\n if (Galaxy.admintoolshedapp.adminShedListView) {\n Galaxy.admintoolshedapp.adminShedListView.reDraw();\n } else {\n Galaxy.admintoolshedapp.adminShedListView = new mod_shed_list_view.ShedListView();\n }\n });\n this.admin_toolshed_router.on(\"route:categories\", function(\n tool_shed\n ) {\n if (Galaxy.admintoolshedapp.adminShedCategoriesView) {\n Galaxy.admintoolshedapp.adminShedCategoriesView.reDraw({\n tool_shed: tool_shed.replace(/\\//g, \"%2f\")\n });\n } else {\n Galaxy.admintoolshedapp.adminShedCategoriesView = new mod_categories_view.CategoryView(\n { tool_shed: tool_shed.replace(/\\//g, \"%2f\") }\n );\n }\n });\n this.admin_toolshed_router.on(\"route:repositories\", function(\n tool_shed,\n category_id\n ) {\n if (Galaxy.admintoolshedapp.adminShedCategoryView) {\n Galaxy.admintoolshedapp.adminShedCategoryView.reDraw({\n tool_shed: tool_shed.replace(/\\//g, \"%2f\"),\n category_id: category_id\n });\n } else {\n Galaxy.admintoolshedapp.adminShedCategoryView = new mod_repositories_view.Category(\n {\n tool_shed: tool_shed.replace(/\\//g, \"%2f\"),\n category_id: category_id\n }\n );\n }\n });\n this.admin_toolshed_router.on(\"route:repository\", function(\n tool_shed,\n repository_id\n ) {\n if (Galaxy.admintoolshedapp.adminRepositoryView) {\n Galaxy.admintoolshedapp.adminRepositoryView.reDraw({\n tool_shed: tool_shed.replace(/\\//g, \"%2f\"),\n repository_id: repository_id\n });\n } else {\n Galaxy.admintoolshedapp.adminRepositoryView = new mod_repository_view.RepoDetails(\n {\n tool_shed: tool_shed.replace(/\\//g, \"%2f\"),\n repository_id: repository_id\n }\n );\n }\n });\n this.admin_toolshed_router.on(\"route:status\", function(\n repositories\n ) {\n if (Galaxy.admintoolshedapp.adminRepoStatusView) {\n Galaxy.admintoolshedapp.adminRepoStatusView.reDraw({\n repositories: repositories.split(\"|\")\n });\n } else {\n Galaxy.admintoolshedapp.adminRepoStatusView = new mod_repo_status_view.RepoStatus(\n { repositories: repositories.split(\"|\") }\n );\n }\n });\n this.admin_toolshed_router.on(\"route:workflows\", function() {\n if (Galaxy.admintoolshedapp.adminWorkflowsView) {\n Galaxy.admintoolshedapp.adminWorkflowsView.reDraw();\n } else {\n Galaxy.admintoolshedapp.adminWorkflowsView = new mod_workflows_view.Workflows();\n }\n });\n\n Backbone.history.start({ pushState: false });\n }\n });\n\n return {\n GalaxyApp: GalaxyAdminToolshedApp\n };\n }\n);\n"]} \ No newline at end of file diff --git a/static/maps/galaxy.interactive_environments.js.map b/static/maps/galaxy.interactive_environments.js.map index f8ddbdf0c63..bae291d8be9 100644 --- a/static/maps/galaxy.interactive_environments.js.map +++ b/static/maps/galaxy.interactive_environments.js.map @@ -1 +1 @@ -{"version":3,"sources":["galaxy.interactive_environments.js"],"names":["append_notebook","url","clear_main_area","$","remove","display_spinner","make_spin_state","s","type","ajax_timeout","sleep_step","log_attempts","count","ajax_timeout_max","ajax_timeout_step","sleep_init","sleep_max","user_msg","toastr","error","ajax_timeout_init","closeButton","timeOut","extendedTimeOut","tapToDismiss","sleep","console","spin_state","clear","log","console_msg","window","setTimeout","withCredentials","success","status","error_callback","jqxhr","bool_response","success_callback","timeout_callback","spinner","ajax_params","spin_until","warn_at","message_once","info","data","wrapped_success","messages","spin_again","ajax","warning","spin","message","load_when_ready","not_ready","unknown_response","waiting","spin_error","test_ie_availability","timeout_error","wait_warn"],"mappings":"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","file":"../scripts/galaxy.interactive_environments.js","sourcesContent":["/**\n * Internal function to remove content from the main area and add the notebook.\n * Not idempotent\n */\nfunction append_notebook(url) {\n clear_main_area();\n $(\"#main\").append(\n ''\n );\n}\n\nfunction clear_main_area() {\n $(\"#spinner\").remove();\n $(\"#main\")\n .children()\n .remove();\n}\n\nfunction display_spinner() {\n $(\"#main\").append(\n ''\n );\n}\n\n/* Create a spin_state object used by spin() and spin_again() */\nfunction make_spin_state(\n type,\n ajax_timeout_init,\n ajax_timeout_max,\n ajax_timeout_step,\n sleep_init,\n sleep_max,\n sleep_step,\n log_attempts\n) {\n var s = {\n type: typeof type !== \"undefined\" ? type : \"GIE spin\",\n ajax_timeout:\n typeof ajax_timeout_init !== \"undefined\" ? ajax_timeout_init : 2000,\n ajax_timeout_max:\n typeof ajax_timeout_max !== \"undefined\" ? ajax_timeout_max : 16000,\n ajax_timeout_step:\n typeof ajax_timeout_step !== \"undefined\" ? ajax_timeout_step : 500,\n sleep: typeof sleep_init !== \"undefined\" ? sleep_init : 500,\n sleep_max: typeof sleep_max !== \"undefined\" ? sleep_max : 8000,\n sleep_step: typeof sleep_step !== \"undefined\" ? sleep_step : 100,\n log_attempts: typeof log_attempts !== \"undefined\" ? log_attempts : true,\n count: 0\n };\n return s;\n}\n\n/* Log/display an error when spinning fails. */\nfunction spin_error(console_msg, user_msg, clear) {\n console.log(console_msg);\n if (clear) clear_main_area();\n if (typeof user_msg == \"string\") {\n toastr.clear();\n toastr.error(user_msg, \"Error\", {\n closeButton: true,\n timeOut: 0,\n extendedTimeOut: 0,\n tapToDismiss: false\n });\n }\n}\n\n/* Increase sleep time and spin again. */\nfunction spin_again(spin_state) {\n if (spin_state.sleep < spin_state.sleep_max) {\n spin_state.sleep += spin_state.sleep_step;\n }\n if (spin_state.log_attempts) {\n console.log(\n spin_state.type +\n \" request \" +\n spin_state.count +\n \" request timeout \" +\n spin_state.ajax_timeout +\n \"ms sleeping \" +\n spin_state.sleep / 1000 +\n \"s\"\n );\n }\n window.setTimeout(spin_state.spinner, spin_state.sleep);\n}\n\n/*\n * Spin on a URL as long as it times out, otherwise, call the provided success or error callback. If the callback\n * returns `true`, the condition is considered \"resolved\" and spinning stops. Otherwise, continue spinning, increasing\n * AJAX timeouts and/or sleep values as configured in the spin_state.\n */\nfunction spin(\n url,\n bool_response,\n success_callback,\n timeout_callback,\n error_callback,\n spin_state\n) {\n var spinner = function() {\n var ajax_params = {\n url: url,\n xhrFields: {\n withCredentials: true\n },\n type: \"GET\",\n timeout: spin_state.ajax_timeout,\n success: function(data, status, jqxhr) {\n if (!success_callback(data, status, jqxhr))\n spin_again(spin_state);\n },\n error: function(jqxhr, status, error) {\n if (status == \"timeout\") {\n if (spin_state.ajax_timeout < spin_state.ajax_timeout_max) {\n spin_state.ajax_timeout += spin_state.ajax_timeout_step;\n }\n spin_state.count++;\n if (!timeout_callback(jqxhr, status, error))\n spin_again(spin_state);\n } else {\n spin_state.count++;\n if (!error_callback(jqxhr, status, error))\n spin_again(spin_state);\n }\n }\n };\n if (bool_response) ajax_params[\"dataType\"] = \"json\";\n $.ajax(ajax_params);\n };\n console.log(\"Setting up new spinner for \" + spin_state.type + \" on \" + url);\n spin_state.spinner = spinner;\n window.setTimeout(spinner, spin_state.sleep);\n}\n\n/*\n * Spin on a URL forever until there is an acceptable response. \n * @param {String} url: URL to test response of. Must return a 200 (302->200 is OK).\n * @param {Boolean} bool_response: If set to `true`, do not stop spinning until the response is `true`. Otherwise, stop\n * as soon as a successful response is received.\n */\nfunction spin_until(\n url,\n bool_response,\n messages,\n success_callback,\n spin_state\n) {\n var warn_at = 40; // ~2 mins\n var message_once = function(message, spin_state) {\n if (spin_state.count == 1) {\n display_spinner();\n toastr.info(message, null, {\n closeButton: true,\n timeOut: 0,\n extendedTimeOut: 0,\n tapToDismiss: false\n });\n }\n };\n var wrapped_success = function(data) {\n if (!bool_response || (bool_response && data == true)) {\n console.log(messages[\"success\"]);\n clear_main_area();\n toastr.clear();\n success_callback();\n } else if (bool_response && data == false) {\n message_once(messages[\"not_ready\"], spin_state);\n return false; // keep spinning\n } else {\n spin_error(\n \"Invalid response to \" + spin_state.type + \" request\",\n messages[\"invalid_response\"],\n true\n );\n }\n return true; // stop spinning\n };\n var timeout_error = function(jqxhr, status, error) {\n message_once(messages[\"waiting\"], spin_state);\n if (spin_state.count == warn_at) {\n toastr.warning(messages[\"wait_warn\"], \"Warning\", {\n closeButton: true,\n timeOut: 0,\n extendedTimeOut: 0,\n tapToDismiss: false\n });\n }\n return false; // keep spinning\n };\n spin(\n url,\n bool_response,\n wrapped_success,\n timeout_error,\n timeout_error,\n spin_state\n );\n}\n\n/**\n * Test a boolean (json) response from a URL, and call a callback when done.\n * http://stackoverflow.com/q/25390206/347368\n * @param {String} url: URL to test response of. Must return a 200 (302->200 is OK) and either `true` or `false`.\n * @param {String} callback: function to call once successfully connected.\n *\n */\nfunction load_when_ready(url, success_callback) {\n var messages = {\n success: \"Galaxy reports IE container ready, returning\",\n not_ready:\n \"Galaxy is launching a container in which to run this interactive environment. Please wait...\",\n unknown_response:\n \"Galaxy failed to launch a container in which to run this interactive environment, contact a Galaxy administrator.\",\n waiting:\n \"Galaxy is launching a container in which to run this interactive environment. Please wait...\",\n wait_warn:\n \"It is taking an usually long time to start a container. Attempts will continue but you may want to report this condition to a Galaxy administrator if it does not succeed soon.\",\n error:\n \"Galaxy encountered an error while attempting to determine the readiness of this interactive environment's container, contact a Galaxy administrator.\"\n };\n var spin_state = make_spin_state(\"IE container readiness\");\n spin_until(url, true, messages, success_callback, spin_state);\n}\n\n/**\n * Test availability of a URL, and call a callback when done.\n * http://stackoverflow.com/q/25390206/347368\n * @param {String} url: URL to test availability of. Must return a 200 (302->200 is OK).\n * @param {String} callback: function to call once successfully connected.\n *\n */\nfunction test_ie_availability(url, success_callback) {\n var messages = {\n success: \"IE connection succeeded, returning\",\n waiting:\n \"Interactive environment container is running, attempting to connect to the IE. Please wait...\",\n wait_warn:\n \"It is taking an usually long time to connect to the interactive environment. Attempts will continue but you may want to report this condition to a Galaxy administrator if it does not succeed soon.\",\n error:\n \"An error was encountered while attempting to connect to the interactive environment, contact your administrator.\"\n };\n var spin_state = make_spin_state(\"IE availability\");\n spin_until(url, false, messages, success_callback, spin_state);\n}\n"]} \ No newline at end of file +{"version":3,"sources":[],"names":[],"mappings":"","file":"../scripts/galaxy.interactive_environments.js","sourcesContent":[]} \ No newline at end of file diff --git a/static/maps/galaxy.js.map b/static/maps/galaxy.js.map index 545689004ea..ffb32ad0bfd 100644 --- a/static/maps/galaxy.js.map +++ b/static/maps/galaxy.js.map @@ -1 +1 @@ -{"version":3,"sources":["galaxy.js"],"names":["define","_","Backbone","BASE_MVC","userModel","metricsLogger","addLogging","localize","GalaxyApp","options","bootstrapped","this","_init","localDebugging","NAMESPACE_KEY","DEBUGGING_KEY","self","localStorage","getItem","storageErr","log","session_csrf_token","_initLogger","debug","Events","logger","console","_initLocale","_processOptions","root","params","_initConfig","config","prototype","defaultOptions","patchExisting","loggerOptions","defaults","k","user","_setUpListeners","trigger","patchWith","hasOwnProperty","consoleLogger","_patchGalaxy","emit","_l","consoleLevel","MetricsLogger","ALL","consoleNamespaceWhitelist","userJSON","split","map","i","data","arguments","Array","slice","call","xhr","url","location","debugging","window","setting","undefined","_initUser","removeItem","debuggingNamespaces","lastAjax","$","document","bind","ev","err","namespaces","csv","setItem","newSettings","toString","get"],"mappings":"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","file":"../scripts/galaxy.js","sourcesContent":["define(\n [\n \"libs/underscore\",\n \"libs/backbone\",\n \"mvc/base-mvc\",\n \"mvc/user/user-model\",\n \"utils/metrics-logger\",\n \"utils/add-logging\",\n \"utils/localization\"\n ],\n function(\n _,\n Backbone,\n BASE_MVC,\n userModel,\n metricsLogger,\n addLogging,\n localize\n ) {\n // TODO: move into a singleton pattern and have dependents import Galaxy\n // ============================================================================\n /** Base galaxy client-side application.\n * Iniitializes:\n * logger : the logger/metrics-logger\n * localize : the string localizer\n * config : the current configuration (any k/v in\n * galaxy.ini available from the configuration API)\n * user : the current user (as a mvc/user/user-model)\n */\n function GalaxyApp(options, bootstrapped) {\n var self = this;\n return self._init(options || {}, bootstrapped || {});\n }\n\n // add logging shortcuts for this object\n addLogging(GalaxyApp, \"GalaxyApp\");\n\n // a debug flag can be set via local storage and made available during script/page loading\n var DEBUGGING_KEY = \"galaxy:debug\",\n NAMESPACE_KEY = DEBUGGING_KEY + \":namespaces\",\n localDebugging = false;\n try {\n localDebugging = localStorage.getItem(DEBUGGING_KEY) == \"true\";\n } catch (storageErr) {\n console.log(\n localize(\"localStorage not available for debug flag retrieval\")\n );\n }\n\n /** initalize options and sub-components */\n GalaxyApp.prototype._init = function __init(options, bootstrapped) {\n var self = this;\n _.extend(self, Backbone.Events);\n if (localDebugging) {\n self.logger = console;\n console.debug(\n \"debugging galaxy:\",\n \"options:\",\n options,\n \"bootstrapped:\",\n bootstrapped\n );\n }\n\n self._processOptions(options);\n\n // add root and url parameters\n self.root = options.root || \"/\";\n self.params = options.params || {};\n self.session_csrf_token = options.session_csrf_token || null;\n\n self._initConfig(options.config || {});\n self._patchGalaxy(window.Galaxy);\n\n self._initLogger(self.options.loggerOptions || {});\n // at this point, either logging or not and namespaces are enabled - chat it up\n self.debug(\"GalaxyApp.options: \", self.options);\n self.debug(\"GalaxyApp.config: \", self.config);\n self.debug(\"GalaxyApp.logger: \", self.logger);\n\n self._initLocale();\n self.debug(\"GalaxyApp.localize: \", self.localize);\n\n self.config = options.config || {};\n self.debug(\"GalaxyApp.config: \", self.config);\n\n self._initUser(options.user || {});\n self.debug(\"GalaxyApp.user: \", self.user);\n\n self._setUpListeners();\n self.trigger(\"ready\", self);\n\n return self;\n };\n\n /** default options */\n GalaxyApp.prototype.defaultOptions = {\n /** monkey patch attributes from existing window.Galaxy object? */\n patchExisting: true,\n /** root url of this app */\n root: \"/\",\n session_csrf_token: null\n };\n\n /** filter to options present in defaultOptions (and default to them) */\n GalaxyApp.prototype._processOptions = function _processOptions(\n options\n ) {\n var self = this,\n defaults = self.defaultOptions;\n\n self.options = {};\n for (var k in defaults) {\n if (defaults.hasOwnProperty(k)) {\n self.options[k] = options.hasOwnProperty(k)\n ? options[k]\n : defaults[k];\n }\n }\n return self;\n };\n\n /** parse the config and any extra info derived from it */\n GalaxyApp.prototype._initConfig = function _initConfig(config) {\n var self = this;\n self.config = config;\n\n // give precendence to localdebugging for this setting\n self.config.debug = localDebugging || self.config.debug;\n\n return self;\n };\n\n /** add an option from options if the key matches an option in defaultOptions */\n GalaxyApp.prototype._patchGalaxy = function _patchGalaxy(patchWith) {\n var self = this;\n // in case req or plain script tag order has created a prev. version of the Galaxy obj...\n if (self.options.patchExisting && patchWith) {\n // self.debug( 'found existing Galaxy object:', patchWith );\n // ...(for now) monkey patch any added attributes that the previous Galaxy may have had\n //TODO: move those attributes to more formal assignment in GalaxyApp\n for (var k in patchWith) {\n if (patchWith.hasOwnProperty(k)) {\n // self.debug( '\\t patching in ' + k + ' to Galaxy:', self[ k ] );\n self[k] = patchWith[k];\n }\n }\n }\n };\n\n /** set up the metrics logger (utils/metrics-logger) and pass loggerOptions */\n GalaxyApp.prototype._initLogger = function _initLogger(loggerOptions) {\n var self = this;\n\n // default to console logging at the debug level if the debug flag is set\n if (self.config.debug) {\n loggerOptions.consoleLogger =\n loggerOptions.consoleLogger || console;\n loggerOptions.consoleLevel =\n loggerOptions.consoleLevel ||\n metricsLogger.MetricsLogger.ALL;\n // load any logging namespaces from localStorage if we can\n try {\n loggerOptions.consoleNamespaceWhitelist = localStorage\n .getItem(NAMESPACE_KEY)\n .split(\",\");\n } catch (storageErr) {}\n }\n\n self.logger = new metricsLogger.MetricsLogger(loggerOptions);\n self.emit = {};\n [\"log\", \"debug\", \"info\", \"warn\", \"error\", \"metric\"].map(function(\n i\n ) {\n self.emit[i] = function(data) {\n self.logger.emit(\n i,\n arguments[0],\n Array.prototype.slice.call(arguments, 1)\n );\n };\n });\n\n if (self.config.debug) {\n // add this logger to mvc's loggable mixin so that all models can use the logger\n BASE_MVC.LoggableMixin.logger = self.logger;\n }\n return self;\n };\n\n /** add the localize fn to this object and the window namespace (as '_l') */\n GalaxyApp.prototype._initLocale = function _initLocale(options) {\n var self = this;\n self.debug(\"_initLocale:\", options);\n self.localize = localize;\n // add to window as global shortened alias\n // TODO: temporary - remove when can require for plugins\n window._l = self.localize;\n return self;\n };\n\n /** set up the current user as a Backbone model (mvc/user/user-model) */\n GalaxyApp.prototype._initUser = function _initUser(userJSON) {\n var self = this;\n self.debug(\"_initUser:\", userJSON);\n self.user = new userModel.User(userJSON);\n self.user.logger = self.logger;\n return self;\n };\n\n /** Set up DOM/jQuery/Backbone event listeners enabled for all pages */\n GalaxyApp.prototype._setUpListeners = function _setUpListeners() {\n var self = this;\n\n // hook to jq beforeSend to record the most recent ajax call and cache some data about it\n /** cached info about the last ajax call made through jQuery */\n self.lastAjax = {};\n $(document).bind(\"ajaxSend\", function(ev, xhr, options) {\n var data = options.data;\n try {\n data = JSON.parse(data);\n } catch (err) {}\n\n self.lastAjax = {\n url: location.href.slice(0, -1) + options.url,\n data: data\n };\n //TODO:?? we might somehow manage to *retry* ajax using either this hook or Backbone.sync\n });\n return self;\n };\n\n /** Turn debugging/console-output on/off by passing boolean. Pass nothing to get current setting. */\n GalaxyApp.prototype.debugging = function _debugging(setting) {\n var self = this;\n try {\n if (setting === undefined) {\n return localStorage.getItem(DEBUGGING_KEY) === \"true\";\n }\n if (setting) {\n localStorage.setItem(DEBUGGING_KEY, true);\n return true;\n }\n\n localStorage.removeItem(DEBUGGING_KEY);\n // also remove all namespaces\n self.debuggingNamespaces(null);\n } catch (storageErr) {\n console.log(\n localize(\n \"localStorage not available for debug flag retrieval\"\n )\n );\n }\n return false;\n };\n\n /** Add, remove, or clear namespaces from the debugging filters\n * Pass no arguments to retrieve the existing namespaces as an array.\n * Pass in null to clear all namespaces (all logging messages will show now).\n * Pass in an array of strings or single string of the namespaces to filter to.\n * Returns the new/current namespaces as an array;\n */\n GalaxyApp.prototype.debuggingNamespaces = function _debuggingNamespaces(\n namespaces\n ) {\n var self = this;\n try {\n if (namespaces === undefined) {\n var csv = localStorage.getItem(NAMESPACE_KEY);\n return typeof csv === \"string\" ? csv.split(\",\") : [];\n } else if (namespaces === null) {\n localStorage.removeItem(NAMESPACE_KEY);\n } else {\n localStorage.setItem(NAMESPACE_KEY, namespaces);\n }\n var newSettings = self.debuggingNamespaces();\n if (self.logger) {\n self.logger.options.consoleNamespaceWhitelist = newSettings;\n }\n return newSettings;\n } catch (storageErr) {\n console.log(\n localize(\n \"localStorage not available for debug namespace retrieval\"\n )\n );\n }\n };\n\n /** string rep */\n GalaxyApp.prototype.toString = function toString() {\n var userEmail = this.user\n ? this.user.get(\"email\") || \"(anonymous)\"\n : \"uninitialized\";\n return \"GalaxyApp(\" + userEmail + \")\";\n };\n\n // ============================================================================\n return {\n GalaxyApp: GalaxyApp\n };\n }\n);\n"]} \ No newline at end of file +{"version":3,"sources":["galaxy.js"],"names":["define","_","Backbone","BASE_MVC","userModel","metricsLogger","addLogging","localize","console","bootstrapped","this","_init","options","extend","NAMESPACE_KEY","DEBUGGING_KEY","localDebugging","self","localStorage","getItem","debug","storageErr","root","GalaxyApp","prototype","_initLogger","Events","_initLocale","config","trigger","params","session_csrf_token","_initConfig","_patchGalaxy","window","Galaxy","loggerOptions","logger","defaults","defaultOptions","user","_processOptions","k","hasOwnProperty","patchWith","patchExisting","MetricsLogger","consoleLogger","consoleLevel","_l","ALL","consoleNamespaceWhitelist","_initUser","split","data","emit","map","i","arguments","lastAjax","slice","call","userJSON","User","removeItem","_setUpListeners","$","document","bind","ev","xhr","JSON","parse","namespaces","undefined","url","csv","setting","newSettings","setItem","userEmail","debuggingNamespaces","log","toString","get"],"mappings":"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","file":"../scripts/galaxy.js","sourcesContent":["define(\n [\n \"libs/underscore\",\n \"libs/backbone\",\n \"mvc/base-mvc\",\n \"mvc/user/user-model\",\n \"utils/metrics-logger\",\n \"utils/add-logging\",\n \"utils/localization\"\n ],\n function(\n _,\n Backbone,\n BASE_MVC,\n userModel,\n metricsLogger,\n addLogging,\n localize\n ) {\n // TODO: move into a singleton pattern and have dependents import Galaxy\n // ============================================================================\n /** Base galaxy client-side application.\n * Iniitializes:\n * logger : the logger/metrics-logger\n * localize : the string localizer\n * config : the current configuration (any k/v in\n * galaxy.ini available from the configuration API)\n * user : the current user (as a mvc/user/user-model)\n */\n function GalaxyApp(options, bootstrapped) {\n var self = this;\n return self._init(options || {}, bootstrapped || {});\n }\n\n // add logging shortcuts for this object\n addLogging(GalaxyApp, \"GalaxyApp\");\n\n // a debug flag can be set via local storage and made available during script/page loading\n var DEBUGGING_KEY = \"galaxy:debug\",\n NAMESPACE_KEY = DEBUGGING_KEY + \":namespaces\",\n localDebugging = false;\n try {\n localDebugging = localStorage.getItem(DEBUGGING_KEY) == \"true\";\n } catch (storageErr) {\n console.log(\n localize(\"localStorage not available for debug flag retrieval\")\n );\n }\n\n /** initalize options and sub-components */\n GalaxyApp.prototype._init = function __init(options, bootstrapped) {\n var self = this;\n _.extend(self, Backbone.Events);\n if (localDebugging) {\n self.logger = console;\n console.debug(\n \"debugging galaxy:\",\n \"options:\",\n options,\n \"bootstrapped:\",\n bootstrapped\n );\n }\n\n self._processOptions(options);\n\n // add root and url parameters\n self.root = options.root || \"/\";\n self.params = options.params || {};\n self.session_csrf_token = options.session_csrf_token || null;\n\n self._initConfig(options.config || {});\n self._patchGalaxy(window.Galaxy);\n\n self._initLogger(self.options.loggerOptions || {});\n // at this point, either logging or not and namespaces are enabled - chat it up\n self.debug(\"GalaxyApp.options: \", self.options);\n self.debug(\"GalaxyApp.config: \", self.config);\n self.debug(\"GalaxyApp.logger: \", self.logger);\n\n self._initLocale();\n self.debug(\"GalaxyApp.localize: \", self.localize);\n\n self.config = options.config || {};\n self.debug(\"GalaxyApp.config: \", self.config);\n\n self._initUser(options.user || {});\n self.debug(\"GalaxyApp.user: \", self.user);\n\n self._setUpListeners();\n self.trigger(\"ready\", self);\n\n return self;\n };\n\n /** default options */\n GalaxyApp.prototype.defaultOptions = {\n /** monkey patch attributes from existing window.Galaxy object? */\n patchExisting: true,\n /** root url of this app */\n root: \"/\",\n session_csrf_token: null\n };\n\n /** filter to options present in defaultOptions (and default to them) */\n GalaxyApp.prototype._processOptions = function _processOptions(\n options\n ) {\n var self = this,\n defaults = self.defaultOptions;\n\n self.options = {};\n for (var k in defaults) {\n if (defaults.hasOwnProperty(k)) {\n self.options[k] = options.hasOwnProperty(k)\n ? options[k]\n : defaults[k];\n }\n }\n return self;\n };\n\n /** parse the config and any extra info derived from it */\n GalaxyApp.prototype._initConfig = function _initConfig(config) {\n var self = this;\n self.config = config;\n\n // give precendence to localdebugging for this setting\n self.config.debug = localDebugging || self.config.debug;\n\n return self;\n };\n\n /** add an option from options if the key matches an option in defaultOptions */\n GalaxyApp.prototype._patchGalaxy = function _patchGalaxy(patchWith) {\n var self = this;\n // in case req or plain script tag order has created a prev. version of the Galaxy obj...\n if (self.options.patchExisting && patchWith) {\n // self.debug( 'found existing Galaxy object:', patchWith );\n // ...(for now) monkey patch any added attributes that the previous Galaxy may have had\n //TODO: move those attributes to more formal assignment in GalaxyApp\n for (var k in patchWith) {\n if (patchWith.hasOwnProperty(k)) {\n // self.debug( '\\t patching in ' + k + ' to Galaxy:', self[ k ] );\n self[k] = patchWith[k];\n }\n }\n }\n };\n\n /** set up the metrics logger (utils/metrics-logger) and pass loggerOptions */\n GalaxyApp.prototype._initLogger = function _initLogger(loggerOptions) {\n var self = this;\n\n // default to console logging at the debug level if the debug flag is set\n if (self.config.debug) {\n loggerOptions.consoleLogger =\n loggerOptions.consoleLogger || console;\n loggerOptions.consoleLevel =\n loggerOptions.consoleLevel ||\n metricsLogger.MetricsLogger.ALL;\n // load any logging namespaces from localStorage if we can\n try {\n loggerOptions.consoleNamespaceWhitelist = localStorage\n .getItem(NAMESPACE_KEY)\n .split(\",\");\n } catch (storageErr) {}\n }\n\n self.logger = new metricsLogger.MetricsLogger(loggerOptions);\n self.emit = {};\n [\"log\", \"debug\", \"info\", \"warn\", \"error\", \"metric\"].map(function(\n i\n ) {\n self.emit[i] = function(data) {\n self.logger.emit(\n i,\n arguments[0],\n Array.prototype.slice.call(arguments, 1)\n );\n };\n });\n\n if (self.config.debug) {\n // add this logger to mvc's loggable mixin so that all models can use the logger\n BASE_MVC.LoggableMixin.logger = self.logger;\n }\n return self;\n };\n\n /** add the localize fn to this object and the window namespace (as '_l') */\n GalaxyApp.prototype._initLocale = function _initLocale(options) {\n var self = this;\n self.debug(\"_initLocale:\", options);\n self.localize = localize;\n // add to window as global shortened alias\n // TODO: temporary - remove when can require for plugins\n window._l = self.localize;\n return self;\n };\n\n /** set up the current user as a Backbone model (mvc/user/user-model) */\n GalaxyApp.prototype._initUser = function _initUser(userJSON) {\n var self = this;\n self.debug(\"_initUser:\", userJSON);\n self.user = new userModel.User(userJSON);\n self.user.logger = self.logger;\n return self;\n };\n\n /** Set up DOM/jQuery/Backbone event listeners enabled for all pages */\n GalaxyApp.prototype._setUpListeners = function _setUpListeners() {\n var self = this;\n\n // hook to jq beforeSend to record the most recent ajax call and cache some data about it\n /** cached info about the last ajax call made through jQuery */\n self.lastAjax = {};\n $(document).bind(\"ajaxSend\", function(ev, xhr, options) {\n var data = options.data;\n try {\n data = JSON.parse(data);\n } catch (err) {}\n\n self.lastAjax = {\n url: location.href.slice(0, -1) + options.url,\n data: data\n };\n //TODO:?? we might somehow manage to *retry* ajax using either this hook or Backbone.sync\n });\n return self;\n };\n\n /** Turn debugging/console-output on/off by passing boolean. Pass nothing to get current setting. */\n GalaxyApp.prototype.debugging = function _debugging(setting) {\n var self = this;\n try {\n if (setting === undefined) {\n return localStorage.getItem(DEBUGGING_KEY) === \"true\";\n }\n if (setting) {\n localStorage.setItem(DEBUGGING_KEY, true);\n return true;\n }\n\n localStorage.removeItem(DEBUGGING_KEY);\n // also remove all namespaces\n self.debuggingNamespaces(null);\n } catch (storageErr) {\n console.log(\n localize(\n \"localStorage not available for debug flag retrieval\"\n )\n );\n }\n return false;\n };\n\n /** Add, remove, or clear namespaces from the debugging filters\n * Pass no arguments to retrieve the existing namespaces as an array.\n * Pass in null to clear all namespaces (all logging messages will show now).\n * Pass in an array of strings or single string of the namespaces to filter to.\n * Returns the new/current namespaces as an array;\n */\n GalaxyApp.prototype.debuggingNamespaces = function _debuggingNamespaces(\n namespaces\n ) {\n var self = this;\n try {\n if (namespaces === undefined) {\n var csv = localStorage.getItem(NAMESPACE_KEY);\n return typeof csv === \"string\" ? csv.split(\",\") : [];\n } else if (namespaces === null) {\n localStorage.removeItem(NAMESPACE_KEY);\n } else {\n localStorage.setItem(NAMESPACE_KEY, namespaces);\n }\n var newSettings = self.debuggingNamespaces();\n if (self.logger) {\n self.logger.options.consoleNamespaceWhitelist = newSettings;\n }\n return newSettings;\n } catch (storageErr) {\n console.log(\n localize(\n \"localStorage not available for debug namespace retrieval\"\n )\n );\n }\n };\n\n /** string rep */\n GalaxyApp.prototype.toString = function toString() {\n var userEmail = this.user\n ? this.user.get(\"email\") || \"(anonymous)\"\n : \"uninitialized\";\n return \"GalaxyApp(\" + userEmail + \")\";\n };\n\n // ============================================================================\n return {\n GalaxyApp: GalaxyApp\n };\n }\n);\n"]} \ No newline at end of file diff --git a/static/maps/galaxy.library.js.map b/static/maps/galaxy.library.js.map index 98da7f766d5..2985adcd64d 100644 --- a/static/maps/galaxy.library.js.map +++ b/static/maps/galaxy.library.js.map @@ -1 +1 @@ -{"version":3,"sources":["galaxy.library.js"],"names":["define","LibraryRouter","initialize","Backbone","mod_masthead","mod_utils","mod_toastr","routes","mod_library_model","mod_folderlist_view","mod_librarylist_view","mod_librarytoolbar_view","mod_foldertoolbar_view","mod_library_dataset_view","mod_library_library_view","mod_library_folder_view","Router","extend","this","routesHit","history","on","bind","trackPageview","url","library/:library_id/permissions","folders/:folder_id/permissions","folders/:id/page/:show_page","folders/:folder_id/datasets/:dataset_id","ga","folders/:folder_id/datasets/:dataset_id/versions/:ldda_id","folders/:folder_id/download/:format","folders/:folder_id/import/:source","folder_page_size","window","back","navigate","trigger","replace","libraryListView","library_router","getFragment","folderToolbarView","test","folderListView","Galaxy","root","LibraryPrefs","mod_baseMVC","SessionStorageModel","a","m","parentNode","sort_by","GalaxyApp","View","libraryToolbarView","libraries","datasetView","i","s","o","g","r","render","show_page","q","push","arguments","l","Date","$el","unbind","async","id","preferences","$","download","folder_id","LibraryToolbarView","LibraryListView","dataset_id","show_version","show_permissions","FolderToolbarView","FolderListView","folderView","FolderView","source","showImportModal","format","find","length","info","LibraryDatasetView","ldda_id","library_id","libraryView","LibraryView","start","pushState"],"mappings":"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","file":"../scripts/galaxy.library.js","sourcesContent":["// MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM\n// === MAIN GALAXY LIBRARY MODULE ====\n// MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM\n\ndefine(\n [\n \"layout/masthead\",\n \"utils/utils\",\n \"libs/toastr\",\n \"mvc/base-mvc\",\n \"mvc/library/library-model\",\n \"mvc/library/library-folderlist-view\",\n \"mvc/library/library-librarylist-view\",\n \"mvc/library/library-librarytoolbar-view\",\n \"mvc/library/library-foldertoolbar-view\",\n \"mvc/library/library-dataset-view\",\n \"mvc/library/library-library-view\",\n \"mvc/library/library-folder-view\"\n ],\n function(\n mod_masthead,\n mod_utils,\n mod_toastr,\n mod_baseMVC,\n mod_library_model,\n mod_folderlist_view,\n mod_librarylist_view,\n mod_librarytoolbar_view,\n mod_foldertoolbar_view,\n mod_library_dataset_view,\n mod_library_library_view,\n mod_library_folder_view\n ) {\n // ============================================================================\n /**\n * The Data Libraries router. Takes care about triggering routes\n * and sends users to proper pieces of the application.\n */\n var LibraryRouter = Backbone.Router.extend({\n initialize: function() {\n this.routesHit = 0;\n // keep count of number of routes handled by the application\n Backbone.history.on(\n \"route\",\n function() {\n this.routesHit++;\n },\n this\n );\n\n this.bind(\"route\", this.trackPageview);\n },\n\n routes: {\n \"\": \"libraries\",\n \"page/:show_page\": \"libraries_page\",\n \"library/:library_id/permissions\": \"library_permissions\",\n \"folders/:folder_id/permissions\": \"folder_permissions\",\n \"folders/:id\": \"folder_content\",\n \"folders/:id/page/:show_page\": \"folder_page\",\n \"folders/:folder_id/datasets/:dataset_id\": \"dataset_detail\",\n \"folders/:folder_id/datasets/:dataset_id/permissions\":\n \"dataset_permissions\",\n \"folders/:folder_id/datasets/:dataset_id/versions/:ldda_id\":\n \"dataset_version\",\n \"folders/:folder_id/download/:format\": \"download\",\n \"folders/:folder_id/import/:source\": \"import_datasets\"\n },\n\n /**\n * If more than one route has been hit the user did not land on current\n * page directly so we can go back safely. Otherwise go to the home page.\n * Use replaceState if available so the navigation doesn't create an\n * extra history entry\n */\n back: function() {\n if (this.routesHit > 1) {\n window.history.back();\n } else {\n this.navigate(\"#\", { trigger: true, replace: true });\n }\n },\n\n /**\n * Track every route change as a page view in Google Analytics.\n */\n trackPageview: function() {\n var url = Backbone.history.getFragment();\n //prepend slash\n if (!/^\\//.test(url) && url != \"\") {\n url = \"/\" + url;\n }\n if (typeof ga !== \"undefined\") {\n ga(\"send\", \"pageview\", Galaxy.root + \"library/list\" + url);\n }\n }\n });\n\n // ============================================================================\n /** session storage for library preferences */\n var LibraryPrefs = mod_baseMVC.SessionStorageModel.extend({\n defaults: {\n with_deleted: false,\n without_restricted: false,\n sort_order: \"asc\",\n sort_by: \"name\",\n library_page_size: 20,\n folder_page_size: 15\n }\n });\n\n // ============================================================================\n /**\n * Main view of the Galaxy Data Libraries. Stores pointers to other subviews\n * and defines what router should do on the route triggers.\n */\n var GalaxyLibrary = Backbone.View.extend({\n libraryToolbarView: null,\n libraryListView: null,\n library_router: null,\n libraryView: null,\n folderToolbarView: null,\n folderListView: null,\n datasetView: null,\n\n initialize: function() {\n // This should go upstream in the js app once available\n if (window.Galaxy.config.ga_code) {\n (function(i, s, o, g, r, a, m) {\n i[\"GoogleAnalyticsObject\"] = r;\n (i[r] =\n i[r] ||\n function() {\n (i[r].q = i[r].q || []).push(arguments);\n }),\n (i[r].l = 1 * new Date());\n (a = s.createElement(o)),\n (m = s.getElementsByTagName(o)[0]);\n a.async = 1;\n a.src = g;\n m.parentNode.insertBefore(a, m);\n })(\n window,\n document,\n \"script\",\n \"//www.google-analytics.com/analytics.js\",\n \"ga\"\n );\n ga(\"create\", window.Galaxy.config.ga_code, \"auto\");\n ga(\"send\", \"pageview\");\n }\n\n Galaxy.libraries = this;\n\n this.preferences = new LibraryPrefs({ id: \"global-lib-prefs\" });\n\n this.library_router = new LibraryRouter();\n\n this.library_router.on(\"route:libraries\", function() {\n if (Galaxy.libraries.libraryToolbarView) {\n Galaxy.libraries.libraryToolbarView.$el.unbind(\"click\");\n }\n Galaxy.libraries.libraryToolbarView = new mod_librarytoolbar_view.LibraryToolbarView();\n Galaxy.libraries.libraryListView = new mod_librarylist_view.LibraryListView();\n });\n\n this.library_router.on(\"route:libraries_page\", function(\n show_page\n ) {\n if (Galaxy.libraries.libraryToolbarView === null) {\n Galaxy.libraries.libraryToolbarView = new mod_librarytoolbar_view.LibraryToolbarView();\n Galaxy.libraries.libraryListView = new mod_librarylist_view.LibraryListView(\n { show_page: show_page }\n );\n } else {\n Galaxy.libraries.libraryListView.render({\n show_page: show_page\n });\n }\n });\n\n this.library_router.on(\"route:folder_content\", function(id) {\n if (Galaxy.libraries.folderToolbarView) {\n Galaxy.libraries.folderToolbarView.$el.unbind(\"click\");\n }\n Galaxy.libraries.folderToolbarView = new mod_foldertoolbar_view.FolderToolbarView(\n { id: id }\n );\n Galaxy.libraries.folderListView = new mod_folderlist_view.FolderListView(\n { id: id }\n );\n });\n\n this.library_router.on(\"route:folder_page\", function(\n id,\n show_page\n ) {\n if (Galaxy.libraries.folderToolbarView === null) {\n Galaxy.libraries.folderToolbarView = new mod_foldertoolbar_view.FolderToolbarView(\n { id: id }\n );\n Galaxy.libraries.folderListView = new mod_folderlist_view.FolderListView(\n { id: id, show_page: show_page }\n );\n } else {\n Galaxy.libraries.folderListView.render({\n id: id,\n show_page: parseInt(show_page)\n });\n }\n });\n\n this.library_router.on(\"route:download\", function(\n folder_id,\n format\n ) {\n if ($(\"#folder_list_body\").find(\":checked\").length === 0) {\n mod_toastr.info(\n \"You must select at least one dataset to download\"\n );\n Galaxy.libraries.library_router.navigate(\n \"folders/\" + folder_id,\n { trigger: true, replace: true }\n );\n } else {\n Galaxy.libraries.folderToolbarView.download(\n folder_id,\n format\n );\n Galaxy.libraries.library_router.navigate(\n \"folders/\" + folder_id,\n { trigger: false, replace: true }\n );\n }\n });\n\n this.library_router.on(\"route:dataset_detail\", function(\n folder_id,\n dataset_id\n ) {\n if (Galaxy.libraries.datasetView) {\n Galaxy.libraries.datasetView.$el.unbind(\"click\");\n }\n Galaxy.libraries.datasetView = new mod_library_dataset_view.LibraryDatasetView(\n {\n id: dataset_id,\n show_version: false,\n show_permissions: false\n }\n );\n });\n\n this.library_router.on(\"route:dataset_version\", function(\n folder_id,\n dataset_id,\n ldda_id\n ) {\n if (Galaxy.libraries.datasetView) {\n Galaxy.libraries.datasetView.$el.unbind(\"click\");\n }\n Galaxy.libraries.datasetView = new mod_library_dataset_view.LibraryDatasetView(\n { id: dataset_id, ldda_id: ldda_id, show_version: true }\n );\n });\n\n this.library_router.on(\"route:dataset_permissions\", function(\n folder_id,\n dataset_id\n ) {\n if (Galaxy.libraries.datasetView) {\n Galaxy.libraries.datasetView.$el.unbind(\"click\");\n }\n Galaxy.libraries.datasetView = new mod_library_dataset_view.LibraryDatasetView(\n { id: dataset_id, show_permissions: true }\n );\n });\n\n this.library_router.on(\"route:library_permissions\", function(\n library_id\n ) {\n if (Galaxy.libraries.libraryView) {\n Galaxy.libraries.libraryView.$el.unbind(\"click\");\n }\n Galaxy.libraries.libraryView = new mod_library_library_view.LibraryView(\n { id: library_id, show_permissions: true }\n );\n });\n\n this.library_router.on(\"route:folder_permissions\", function(\n folder_id\n ) {\n if (Galaxy.libraries.folderView) {\n Galaxy.libraries.folderView.$el.unbind(\"click\");\n }\n Galaxy.libraries.folderView = new mod_library_folder_view.FolderView(\n { id: folder_id, show_permissions: true }\n );\n });\n\n this.library_router.on(\"route:import_datasets\", function(\n folder_id,\n source\n ) {\n if (\n Galaxy.libraries.folderToolbarView &&\n Galaxy.libraries.folderListView\n ) {\n Galaxy.libraries.folderToolbarView.showImportModal({\n source: source\n });\n } else {\n Galaxy.libraries.folderToolbarView = new mod_foldertoolbar_view.FolderToolbarView(\n { id: folder_id }\n );\n Galaxy.libraries.folderListView = new mod_folderlist_view.FolderListView(\n { id: folder_id }\n );\n Galaxy.libraries.folderToolbarView.showImportModal({\n source: source\n });\n }\n });\n\n Backbone.history.start({ pushState: false });\n }\n });\n\n return {\n GalaxyApp: GalaxyLibrary\n };\n }\n);\n"]} \ No newline at end of file +{"version":3,"sources":["galaxy.library.js"],"names":["define","initialize","Backbone","mod_masthead","mod_utils","mod_toastr","mod_baseMVC","routes","mod_folderlist_view","mod_librarylist_view","mod_librarytoolbar_view","mod_foldertoolbar_view","mod_library_dataset_view","mod_library_library_view","mod_library_folder_view","LibraryRouter","Router","extend","this","routesHit","history","on","bind","trackPageview","","library/:library_id/permissions","getFragment","folders/:folder_id/permissions","folders/:id","url","folders/:folder_id/datasets/:dataset_id","folders/:folder_id/datasets/:dataset_id/permissions","ga","folders/:folder_id/datasets/:dataset_id/versions/:ldda_id","folders/:folder_id/download/:format","folders/:folder_id/import/:source","library_page_size","folder_page_size","window","back","navigate","trigger","replace","libraryToolbarView","libraryListView","libraryView","test","folderToolbarView","Galaxy","root","LibraryPrefs","i","arguments","defaults","a","createElement","src","m","document","GalaxyApp","View","library_router","libraries","datasetView","r","show_page","q","push","l","Date","o","config","ga_code","preferences","id","info","$el","unbind","folder_id","LibraryListView","LibraryDatasetView","dataset_id","show_version","render","FolderToolbarView","folderListView","FolderListView","folderView","source","$","find","length","download","format","show_permissions","ldda_id","library_id","LibraryView","FolderView","showImportModal","start","pushState"],"mappings":"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","file":"../scripts/galaxy.library.js","sourcesContent":["// MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM\n// === MAIN GALAXY LIBRARY MODULE ====\n// MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM\n\ndefine(\n [\n \"layout/masthead\",\n \"utils/utils\",\n \"libs/toastr\",\n \"mvc/base-mvc\",\n \"mvc/library/library-model\",\n \"mvc/library/library-folderlist-view\",\n \"mvc/library/library-librarylist-view\",\n \"mvc/library/library-librarytoolbar-view\",\n \"mvc/library/library-foldertoolbar-view\",\n \"mvc/library/library-dataset-view\",\n \"mvc/library/library-library-view\",\n \"mvc/library/library-folder-view\"\n ],\n function(\n mod_masthead,\n mod_utils,\n mod_toastr,\n mod_baseMVC,\n mod_library_model,\n mod_folderlist_view,\n mod_librarylist_view,\n mod_librarytoolbar_view,\n mod_foldertoolbar_view,\n mod_library_dataset_view,\n mod_library_library_view,\n mod_library_folder_view\n ) {\n // ============================================================================\n /**\n * The Data Libraries router. Takes care about triggering routes\n * and sends users to proper pieces of the application.\n */\n var LibraryRouter = Backbone.Router.extend({\n initialize: function() {\n this.routesHit = 0;\n // keep count of number of routes handled by the application\n Backbone.history.on(\n \"route\",\n function() {\n this.routesHit++;\n },\n this\n );\n\n this.bind(\"route\", this.trackPageview);\n },\n\n routes: {\n \"\": \"libraries\",\n \"page/:show_page\": \"libraries_page\",\n \"library/:library_id/permissions\": \"library_permissions\",\n \"folders/:folder_id/permissions\": \"folder_permissions\",\n \"folders/:id\": \"folder_content\",\n \"folders/:id/page/:show_page\": \"folder_page\",\n \"folders/:folder_id/datasets/:dataset_id\": \"dataset_detail\",\n \"folders/:folder_id/datasets/:dataset_id/permissions\":\n \"dataset_permissions\",\n \"folders/:folder_id/datasets/:dataset_id/versions/:ldda_id\":\n \"dataset_version\",\n \"folders/:folder_id/download/:format\": \"download\",\n \"folders/:folder_id/import/:source\": \"import_datasets\"\n },\n\n /**\n * If more than one route has been hit the user did not land on current\n * page directly so we can go back safely. Otherwise go to the home page.\n * Use replaceState if available so the navigation doesn't create an\n * extra history entry\n */\n back: function() {\n if (this.routesHit > 1) {\n window.history.back();\n } else {\n this.navigate(\"#\", { trigger: true, replace: true });\n }\n },\n\n /**\n * Track every route change as a page view in Google Analytics.\n */\n trackPageview: function() {\n var url = Backbone.history.getFragment();\n //prepend slash\n if (!/^\\//.test(url) && url != \"\") {\n url = \"/\" + url;\n }\n if (typeof ga !== \"undefined\") {\n ga(\"send\", \"pageview\", Galaxy.root + \"library/list\" + url);\n }\n }\n });\n\n // ============================================================================\n /** session storage for library preferences */\n var LibraryPrefs = mod_baseMVC.SessionStorageModel.extend({\n defaults: {\n with_deleted: false,\n without_restricted: false,\n sort_order: \"asc\",\n sort_by: \"name\",\n library_page_size: 20,\n folder_page_size: 15\n }\n });\n\n // ============================================================================\n /**\n * Main view of the Galaxy Data Libraries. Stores pointers to other subviews\n * and defines what router should do on the route triggers.\n */\n var GalaxyLibrary = Backbone.View.extend({\n libraryToolbarView: null,\n libraryListView: null,\n library_router: null,\n libraryView: null,\n folderToolbarView: null,\n folderListView: null,\n datasetView: null,\n\n initialize: function() {\n // This should go upstream in the js app once available\n if (window.Galaxy.config.ga_code) {\n (function(i, s, o, g, r, a, m) {\n i[\"GoogleAnalyticsObject\"] = r;\n (i[r] =\n i[r] ||\n function() {\n (i[r].q = i[r].q || []).push(arguments);\n }),\n (i[r].l = 1 * new Date());\n (a = s.createElement(o)),\n (m = s.getElementsByTagName(o)[0]);\n a.async = 1;\n a.src = g;\n m.parentNode.insertBefore(a, m);\n })(\n window,\n document,\n \"script\",\n \"//www.google-analytics.com/analytics.js\",\n \"ga\"\n );\n ga(\"create\", window.Galaxy.config.ga_code, \"auto\");\n ga(\"send\", \"pageview\");\n }\n\n Galaxy.libraries = this;\n\n this.preferences = new LibraryPrefs({ id: \"global-lib-prefs\" });\n\n this.library_router = new LibraryRouter();\n\n this.library_router.on(\"route:libraries\", function() {\n if (Galaxy.libraries.libraryToolbarView) {\n Galaxy.libraries.libraryToolbarView.$el.unbind(\"click\");\n }\n Galaxy.libraries.libraryToolbarView = new mod_librarytoolbar_view.LibraryToolbarView();\n Galaxy.libraries.libraryListView = new mod_librarylist_view.LibraryListView();\n });\n\n this.library_router.on(\"route:libraries_page\", function(\n show_page\n ) {\n if (Galaxy.libraries.libraryToolbarView === null) {\n Galaxy.libraries.libraryToolbarView = new mod_librarytoolbar_view.LibraryToolbarView();\n Galaxy.libraries.libraryListView = new mod_librarylist_view.LibraryListView(\n { show_page: show_page }\n );\n } else {\n Galaxy.libraries.libraryListView.render({\n show_page: show_page\n });\n }\n });\n\n this.library_router.on(\"route:folder_content\", function(id) {\n if (Galaxy.libraries.folderToolbarView) {\n Galaxy.libraries.folderToolbarView.$el.unbind(\"click\");\n }\n Galaxy.libraries.folderToolbarView = new mod_foldertoolbar_view.FolderToolbarView(\n { id: id }\n );\n Galaxy.libraries.folderListView = new mod_folderlist_view.FolderListView(\n { id: id }\n );\n });\n\n this.library_router.on(\"route:folder_page\", function(\n id,\n show_page\n ) {\n if (Galaxy.libraries.folderToolbarView === null) {\n Galaxy.libraries.folderToolbarView = new mod_foldertoolbar_view.FolderToolbarView(\n { id: id }\n );\n Galaxy.libraries.folderListView = new mod_folderlist_view.FolderListView(\n { id: id, show_page: show_page }\n );\n } else {\n Galaxy.libraries.folderListView.render({\n id: id,\n show_page: parseInt(show_page)\n });\n }\n });\n\n this.library_router.on(\"route:download\", function(\n folder_id,\n format\n ) {\n if ($(\"#folder_list_body\").find(\":checked\").length === 0) {\n mod_toastr.info(\n \"You must select at least one dataset to download\"\n );\n Galaxy.libraries.library_router.navigate(\n \"folders/\" + folder_id,\n { trigger: true, replace: true }\n );\n } else {\n Galaxy.libraries.folderToolbarView.download(\n folder_id,\n format\n );\n Galaxy.libraries.library_router.navigate(\n \"folders/\" + folder_id,\n { trigger: false, replace: true }\n );\n }\n });\n\n this.library_router.on(\"route:dataset_detail\", function(\n folder_id,\n dataset_id\n ) {\n if (Galaxy.libraries.datasetView) {\n Galaxy.libraries.datasetView.$el.unbind(\"click\");\n }\n Galaxy.libraries.datasetView = new mod_library_dataset_view.LibraryDatasetView(\n {\n id: dataset_id,\n show_version: false,\n show_permissions: false\n }\n );\n });\n\n this.library_router.on(\"route:dataset_version\", function(\n folder_id,\n dataset_id,\n ldda_id\n ) {\n if (Galaxy.libraries.datasetView) {\n Galaxy.libraries.datasetView.$el.unbind(\"click\");\n }\n Galaxy.libraries.datasetView = new mod_library_dataset_view.LibraryDatasetView(\n { id: dataset_id, ldda_id: ldda_id, show_version: true }\n );\n });\n\n this.library_router.on(\"route:dataset_permissions\", function(\n folder_id,\n dataset_id\n ) {\n if (Galaxy.libraries.datasetView) {\n Galaxy.libraries.datasetView.$el.unbind(\"click\");\n }\n Galaxy.libraries.datasetView = new mod_library_dataset_view.LibraryDatasetView(\n { id: dataset_id, show_permissions: true }\n );\n });\n\n this.library_router.on(\"route:library_permissions\", function(\n library_id\n ) {\n if (Galaxy.libraries.libraryView) {\n Galaxy.libraries.libraryView.$el.unbind(\"click\");\n }\n Galaxy.libraries.libraryView = new mod_library_library_view.LibraryView(\n { id: library_id, show_permissions: true }\n );\n });\n\n this.library_router.on(\"route:folder_permissions\", function(\n folder_id\n ) {\n if (Galaxy.libraries.folderView) {\n Galaxy.libraries.folderView.$el.unbind(\"click\");\n }\n Galaxy.libraries.folderView = new mod_library_folder_view.FolderView(\n { id: folder_id, show_permissions: true }\n );\n });\n\n this.library_router.on(\"route:import_datasets\", function(\n folder_id,\n source\n ) {\n if (\n Galaxy.libraries.folderToolbarView &&\n Galaxy.libraries.folderListView\n ) {\n Galaxy.libraries.folderToolbarView.showImportModal({\n source: source\n });\n } else {\n Galaxy.libraries.folderToolbarView = new mod_foldertoolbar_view.FolderToolbarView(\n { id: folder_id }\n );\n Galaxy.libraries.folderListView = new mod_folderlist_view.FolderListView(\n { id: folder_id }\n );\n Galaxy.libraries.folderToolbarView.showImportModal({\n source: source\n });\n }\n });\n\n Backbone.history.start({ pushState: false });\n }\n });\n\n return {\n GalaxyApp: GalaxyLibrary\n };\n }\n);\n"]} \ No newline at end of file diff --git a/static/maps/galaxy.pages.js.map b/static/maps/galaxy.pages.js.map index 932d712b879..62906daea8c 100644 --- a/static/maps/galaxy.pages.js.map +++ b/static/maps/galaxy.pages.js.map @@ -1 +1 @@ -{"version":3,"sources":["galaxy.pages.js"],"names":["init_galaxy_elts","wym","$","_doc","body","each","this","click","createRange","range","selectNodeContents","selection","window","get_item_info","dialog_type","item_singular","item_plural","item_controller","ITEM_HISTORY","item_class","ITEM_DATASET","ITEM_WORKFLOW","ITEM_PAGE","ITEM_VISUALIZATION","item_list_action","toLowerCase","replace","singular","plural","controller","iclass","make_item_importable","item_id","item_type","ajax_url","ajax","url","data","error","alert","accessible","CONTROLS","DIALOG_HISTORY_LINK","DIALOG_DATASET_LINK","DIALOG_WORKFLOW_LINK","DIALOG_EMBED_HISTORY","DIALOG_EMBED_DATASET","DIALOG_EMBED_WORKFLOW","WYMeditor","sStamp","uniqueStamp","dialogType","dialogFeatures","bodyHtml","selected","DIALOG_LINK","curURL","_options","curTitle","val","attr","HREF","srcSelector","SRC","undefined","ALT","sUrl","sName","show_modal","link","text","hrefSelector","hide_modal","titleSelector","set_link_id","_exec","CREATE_LINK","_selected_image","dialogImageSelector","indexOf","Cancel","attribute_input","addClass","removeClass","remove","DIALOG_IMAGE","Insert","iRows","iCols","table","newCol","TITLE","newCaption","sCaption","newRow","length","altSelector","item_info","item_ids","Array","grid","colsSelector","createElement","TABLE","make_importable","url_template","get_name_and_link_url","createCaption","x","link_text","y","insertCell","summarySelector","Close","node","Galaxy","modal","container","MAIN_CONTAINERS","get","parentNode","append","DIALOG_EMBED_PAGE","DIALOG_EMBED_VISUALIZATION","require","url_base","list_ajax_url","dict_format","embedded","title","closing_events","buttons","DIALOG_PAGE_LINK","Embed","DIALOG_VISUALIZATION_LINK","GridView","item_name","show","item_elt_id","insert","statusText","wymeditor","iframe_base_path","getJSON","returned_item_info","css","callback","name","hide","save","do_close","location","page_list_url","containers_menu","tagname","items","editor","$el","insert_link_menu_button","embed_object_button","join","item_embed_html","document","ajaxError","e","message","responseText","Ignore error","skin","basePath","editor_base_path","iframeBasePath","boxHtml","TOOLS","IFRAME","STATUS","toolsItems","wymeditors","save_url","type","id","page_id","content","xhtml","annotations","JSON","stringify","Object","_","success","containersItems","k","v","make_popupmenu","Insert History Link","dialog","Insert Dataset Link","Insert Workflow Link","Insert Page Link","Insert Visualization Link","Embed History","Embed Dataset","Embed Workflow","Embed Visualization"],"mappings":"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","file":"../scripts/galaxy.pages.js","sourcesContent":["var CONTROLS = {\n // Item types.\n ITEM_HISTORY: \"item_history\",\n ITEM_DATASET: \"item_dataset\",\n ITEM_WORKFLOW: \"item_workflow\",\n ITEM_PAGE: \"item_page\",\n ITEM_VISUALIZATION: \"item_visualization\",\n\n // Link dialogs.\n DIALOG_HISTORY_LINK: \"link_history\",\n DIALOG_DATASET_LINK: \"link_dataset\",\n DIALOG_WORKFLOW_LINK: \"link_workflow\",\n DIALOG_PAGE_LINK: \"link_page\",\n DIALOG_VISUALIZATION_LINK: \"link_visualization\",\n\n // Embed dialogs.\n DIALOG_EMBED_HISTORY: \"embed_history\",\n DIALOG_EMBED_DATASET: \"embed_dataset\",\n DIALOG_EMBED_WORKFLOW: \"embed_workflow\",\n DIALOG_EMBED_PAGE: \"embed_page\",\n DIALOG_EMBED_VISUALIZATION: \"embed_visualization\"\n};\n\n// Initialize Galaxy elements.\nfunction init_galaxy_elts(wym) {\n // Set up events to make annotation easy.\n $(\".annotation\", wym._doc.body).each(function() {\n $(this).click(function() {\n // Works in Safari, not in Firefox.\n var range = wym._doc.createRange();\n range.selectNodeContents(this);\n var selection = window.getSelection();\n selection.removeAllRanges();\n selection.addRange(range);\n var t = \"\";\n });\n });\n}\n\n// Based on the dialog type, return a dictionary of information about an item\nfunction get_item_info(dialog_type) {\n var item_singular, item_plural, item_controller;\n switch (dialog_type) {\n case CONTROLS.ITEM_HISTORY:\n item_singular = \"History\";\n item_plural = \"Histories\";\n item_controller = \"history\";\n item_class = \"History\";\n break;\n case CONTROLS.ITEM_DATASET:\n item_singular = \"Dataset\";\n item_plural = \"Datasets\";\n item_controller = \"dataset\";\n item_class = \"HistoryDatasetAssociation\";\n break;\n case CONTROLS.ITEM_WORKFLOW:\n item_singular = \"Workflow\";\n item_plural = \"Workflows\";\n item_controller = \"workflow\";\n item_class = \"StoredWorkflow\";\n break;\n case CONTROLS.ITEM_PAGE:\n item_singular = \"Page\";\n item_plural = \"Pages\";\n item_controller = \"page\";\n item_class = \"Page\";\n break;\n case CONTROLS.ITEM_VISUALIZATION:\n item_singular = \"Visualization\";\n item_plural = \"Visualizations\";\n item_controller = \"visualization\";\n item_class = \"Visualization\";\n break;\n }\n\n // Build ajax URL that lists items for selection.\n var item_list_action =\n \"list_\" + item_plural.toLowerCase() + \"_for_selection\";\n var ajax_url = list_objects_url.replace(\"LIST_ACTION\", item_list_action);\n\n // Set up and return dict.\n return {\n singular: item_singular,\n plural: item_plural,\n controller: item_controller,\n iclass: item_class,\n list_ajax_url: ajax_url\n };\n}\n\n// Make an item importable.\nfunction make_item_importable(item_controller, item_id, item_type) {\n var ajax_url = set_accessible_url.replace(\n \"ITEM_CONTROLLER\",\n item_controller\n );\n $.ajax({\n type: \"POST\",\n url: ajax_url,\n data: { id: item_id, accessible: \"True\" },\n error: function() {\n alert(\"Making \" + item_type + \" accessible failed\");\n }\n });\n}\n\n// Completely replace WYM's dialog handling\nWYMeditor.editor.prototype.dialog = function(\n dialogType,\n dialogFeatures,\n bodyHtml\n) {\n var wym = this;\n var sStamp = wym.uniqueStamp();\n var selected = wym.selected();\n\n // Swap out URL attribute for id/name attribute in link creation to enable anchor creation in page.\n function set_link_id() {\n // When \"set link id\" link clicked, update UI.\n $(\"#set_link_id\").click(function() {\n // Set label.\n $(\"#link_attribute_label\").text(\"ID/Name\");\n\n // Set input elt class, value.\n var attribute_input = $(\".wym_href\");\n attribute_input.addClass(\"wym_id\").removeClass(\"wym_href\");\n if (selected) attribute_input.val($(selected).attr(\"id\"));\n\n // Remove link.\n $(this).remove();\n });\n }\n\n // LINK DIALOG\n if (dialogType == WYMeditor.DIALOG_LINK) {\n if (selected) {\n $(wym._options.hrefSelector).val($(selected).attr(WYMeditor.HREF));\n $(wym._options.srcSelector).val($(selected).attr(WYMeditor.SRC));\n $(wym._options.titleSelector).val(\n $(selected).attr(WYMeditor.TITLE)\n );\n $(wym._options.altSelector).val($(selected).attr(WYMeditor.ALT));\n }\n // Get current URL, title.\n var curURL, curTitle;\n if (selected) {\n curURL = $(selected).attr(\"href\");\n if (curURL == undefined) curURL = \"\";\n curTitle = $(selected).attr(\"title\");\n if (curTitle == undefined) curTitle = \"\";\n }\n show_modal(\n \"Create Link\",\n \"

\" +\n \"

\",\n {\n \"Make link\": function() {\n // Get URL, name/title.\n var sUrl = $(wym._options.hrefSelector).val() || \"\",\n sId = $(\".wym_id\").val() || \"\",\n sName = $(wym._options.titleSelector).val() || \"\";\n\n if (sUrl || sId) {\n // Create link.\n wym._exec(WYMeditor.CREATE_LINK, sStamp);\n\n // Set link attributes.\n var link = $(\"a[href=\" + sStamp + \"]\", wym._doc.body);\n link\n .attr(WYMeditor.HREF, sUrl)\n .attr(WYMeditor.TITLE, sName)\n .attr(\"id\", sId);\n\n // If link's text is default (wym-...), change it to the title.\n if (link.text().indexOf(\"wym-\") === 0) {\n link.text(sName);\n }\n }\n hide_modal();\n },\n Cancel: function() {\n hide_modal();\n }\n },\n {},\n set_link_id\n );\n }\n\n // IMAGE DIALOG\n if (dialogType == WYMeditor.DIALOG_IMAGE) {\n if (wym._selected_image) {\n $(\n wym._options.dialogImageSelector +\n \" \" +\n wym._options.srcSelector\n ).val($(wym._selected_image).attr(WYMeditor.SRC));\n $(\n wym._options.dialogImageSelector +\n \" \" +\n wym._options.titleSelector\n ).val($(wym._selected_image).attr(WYMeditor.TITLE));\n $(\n wym._options.dialogImageSelector +\n \" \" +\n wym._options.altSelector\n ).val($(wym._selected_image).attr(WYMeditor.ALT));\n }\n show_modal(\n \"Image\",\n \"
\" +\n \"
\" +\n \"\" +\n \"
\" +\n \"
\" +\n \"
\" +\n \"\" +\n \"
\" +\n \"
\" +\n \"
\" +\n \"\" +\n \"
\",\n {\n Insert: function() {\n var sUrl = $(wym._options.srcSelector).val();\n if (sUrl.length > 0) {\n wym._exec(WYMeditor.INSERT_IMAGE, sStamp);\n $(\"img[src$=\" + sStamp + \"]\", wym._doc.body)\n .attr(WYMeditor.SRC, sUrl)\n .attr(\n WYMeditor.TITLE,\n $(wym._options.titleSelector).val()\n )\n .attr(\n WYMeditor.ALT,\n $(wym._options.altSelector).val()\n );\n }\n hide_modal();\n },\n Cancel: function() {\n hide_modal();\n }\n }\n );\n return;\n }\n\n // TABLE DIALOG\n if (dialogType == WYMeditor.DIALOG_TABLE) {\n show_modal(\n \"Table\",\n \"
\" +\n \"
\" +\n \"\" +\n \"
\" +\n \"
\" +\n \"
\" +\n \"\" +\n \"
\" +\n \"
\" +\n \"\" +\n \"\" +\n \"
\" +\n \"
\" +\n \"\" +\n \"\" +\n \"
\",\n {\n Insert: function() {\n var iRows = $(wym._options.rowsSelector).val();\n var iCols = $(wym._options.colsSelector).val();\n\n if (iRows > 0 && iCols > 0) {\n var table = wym._doc.createElement(WYMeditor.TABLE);\n var newRow = null;\n var newCol = null;\n\n var sCaption = $(wym._options.captionSelector).val();\n\n //we create the caption\n var newCaption = table.createCaption();\n newCaption.innerHTML = sCaption;\n\n //we create the rows and cells\n for (var x = 0; x < iRows; x++) {\n newRow = table.insertRow(x);\n for (var y = 0; y < iCols; y++) {\n newRow.insertCell(y);\n }\n }\n\n //set the summary attr\n $(table).attr(\n \"summary\",\n $(wym._options.summarySelector).val()\n );\n\n //append the table after the selected container\n var node = $(\n wym.findUp(\n wym.container(),\n WYMeditor.MAIN_CONTAINERS\n )\n ).get(0);\n if (!node || !node.parentNode)\n $(wym._doc.body).append(table);\n else $(node).after(table);\n }\n hide_modal();\n },\n Cancel: function() {\n hide_modal();\n }\n }\n );\n }\n\n // INSERT \"GALAXY ITEM\" LINK DIALOG\n if (\n dialogType == CONTROLS.DIALOG_HISTORY_LINK ||\n dialogType == CONTROLS.DIALOG_DATASET_LINK ||\n dialogType == CONTROLS.DIALOG_WORKFLOW_LINK ||\n dialogType == CONTROLS.DIALOG_PAGE_LINK ||\n dialogType == CONTROLS.DIALOG_VISUALIZATION_LINK\n ) {\n // Based on item type, set useful vars.\n var item_info;\n switch (dialogType) {\n case CONTROLS.DIALOG_HISTORY_LINK:\n item_info = get_item_info(CONTROLS.ITEM_HISTORY);\n break;\n case CONTROLS.DIALOG_DATASET_LINK:\n item_info = get_item_info(CONTROLS.ITEM_DATASET);\n break;\n case CONTROLS.DIALOG_WORKFLOW_LINK:\n item_info = get_item_info(CONTROLS.ITEM_WORKFLOW);\n break;\n case CONTROLS.DIALOG_PAGE_LINK:\n item_info = get_item_info(CONTROLS.ITEM_PAGE);\n break;\n case CONTROLS.DIALOG_VISUALIZATION_LINK:\n item_info = get_item_info(CONTROLS.ITEM_VISUALIZATION);\n break;\n }\n\n require([\"mvc/grid/grid-view\"], function(GridView) {\n var grid = new GridView({\n url_base: item_info.list_ajax_url,\n dict_format: true,\n embedded: true\n });\n Galaxy.modal.show({\n title: \"Insert Link to \" + item_info.singular,\n body: $(\"
\")\n .append(grid.$el)\n .append(\n $(\"
\")\n .append(\n ''\n )\n .append(\n \"Make the selected \" +\n item_info.plural.toLowerCase() +\n \" accessible so that they can viewed by everyone.\"\n )\n ),\n closing_events: true,\n buttons: {\n Insert: function() {\n // Make selected items accessible (importable) ?\n var make_importable = false;\n if ($(\"#make-importable:checked\").val() != null)\n make_importable = true;\n\n // Insert links to history for each checked item.\n var item_ids = new Array();\n grid.$(\"input[name=id]:checked\").each(function() {\n var item_id = $(this).val();\n\n // Make item importable?\n if (make_importable)\n make_item_importable(\n item_info.controller,\n item_id,\n item_info.singular\n );\n\n // Insert link(s) to item(s). This is done by getting item info and then manipulating wym.\n var url_template = get_name_and_link_url + item_id;\n var ajax_url = url_template.replace(\n \"ITEM_CONTROLLER\",\n item_info.controller\n );\n $.getJSON(ajax_url, function(returned_item_info) {\n // Get link text.\n wym._exec(WYMeditor.CREATE_LINK, sStamp);\n var link_text = $(\n \"a[href=\" + sStamp + \"]\",\n wym._doc.body\n ).text();\n\n // Insert link: need to do different actions depending on link text.\n if (\n link_text == \"\" || // Firefox.\n link_text == sStamp // Safari\n ) {\n // User selected no text; create link from scratch and use default text.\n wym.insert(\n \"\" +\n item_info.singular +\n \" '\" +\n returned_item_info.name +\n \"'\"\n );\n } else {\n // Link created from selected text; add href and title.\n $(\"a[href=\" + sStamp + \"]\", wym._doc.body)\n .attr(\n WYMeditor.HREF,\n returned_item_info.link\n )\n .attr(\n WYMeditor.TITLE,\n item_info.singular + item_id\n );\n }\n });\n });\n Galaxy.modal.hide();\n },\n Close: function() {\n Galaxy.modal.hide();\n }\n }\n });\n });\n }\n // EMBED GALAXY OBJECT DIALOGS\n if (\n dialogType == CONTROLS.DIALOG_EMBED_HISTORY ||\n dialogType == CONTROLS.DIALOG_EMBED_DATASET ||\n dialogType == CONTROLS.DIALOG_EMBED_WORKFLOW ||\n dialogType == CONTROLS.DIALOG_EMBED_PAGE ||\n dialogType == CONTROLS.DIALOG_EMBED_VISUALIZATION\n ) {\n // Based on item type, set useful vars.\n var item_info;\n switch (dialogType) {\n case CONTROLS.DIALOG_EMBED_HISTORY:\n item_info = get_item_info(CONTROLS.ITEM_HISTORY);\n break;\n case CONTROLS.DIALOG_EMBED_DATASET:\n item_info = get_item_info(CONTROLS.ITEM_DATASET);\n break;\n case CONTROLS.DIALOG_EMBED_WORKFLOW:\n item_info = get_item_info(CONTROLS.ITEM_WORKFLOW);\n break;\n case CONTROLS.DIALOG_EMBED_PAGE:\n item_info = get_item_info(CONTROLS.ITEM_PAGE);\n break;\n case CONTROLS.DIALOG_EMBED_VISUALIZATION:\n item_info = get_item_info(CONTROLS.ITEM_VISUALIZATION);\n break;\n }\n\n require([\"mvc/grid/grid-view\"], function(GridView) {\n var grid = new GridView({\n url_base: item_info.list_ajax_url,\n dict_format: true,\n embedded: true\n });\n Galaxy.modal.show({\n title: \"Insert Link to \" + item_info.singular,\n body: $(\"
\")\n .append(grid.$el)\n .append(\n $(\"
\")\n .append(\n ''\n )\n .append(\n \"Make the selected \" +\n item_info.plural.toLowerCase() +\n \" accessible so that they can viewed by everyone.\"\n )\n ),\n closing_events: true,\n buttons: {\n Embed: function() {\n // Make selected items accessible (importable) ?\n var make_importable = false;\n if ($(\"#make-importable:checked\").val() != null)\n make_importable = true;\n\n grid.$(\"input[name=id]:checked\").each(function() {\n // Get item ID and name.\n var item_id = $(this).val();\n // Use ':first' because there are many labels in table; the first one is the item name.\n var item_name = $(\n \"label[for='\" + item_id + \"']:first\"\n ).text();\n\n if (make_importable)\n make_item_importable(\n item_info.controller,\n item_id,\n item_info.singular\n );\n\n // Embedded item HTML; item class is embedded in div container classes; this is necessary because the editor strips\n // all non-standard attributes when it returns its content (e.g. it will not return an element attribute of the form\n // item_class='History').\n var item_elt_id = item_info.iclass + \"-\" + item_id;\n var item_embed_html = [\n \"
\",\n \"

\",\n \"Embedded Galaxy \",\n item_info.singular,\n \" '\",\n item_name,\n \"'\",\n \"

\",\n \"

\",\n \"[Do not edit this block; Galaxy will fill it in with the annotated \",\n item_info.singular.toLowerCase(),\n \" when it is displayed.]\",\n \"

\",\n \"
\"\n ].join(\"\");\n\n // Insert embedded item into document.\n wym.insert(item_embed_html);\n });\n Galaxy.modal.hide();\n },\n Close: function() {\n Galaxy.modal.hide();\n }\n }\n });\n });\n }\n};\n\n$(function() {\n // Generic error handling\n $(document).ajaxError(function(e, x) {\n // console.log( e, x );\n var message =\n x.responseText || x.statusText || \"Could not connect to server\";\n show_modal(\"Server error\", message, { \"Ignore error\": hide_modal });\n return false;\n });\n // Create editor\n $(\"[name=page_content]\").wymeditor({\n skin: \"galaxy\",\n basePath: editor_base_path,\n iframeBasePath: iframe_base_path,\n boxHtml:\n \"\" +\n \"\" +\n \"
\" +\n WYMeditor.TOOLS +\n \"
\" +\n \"
\" +\n // + WYMeditor.HTML\n WYMeditor.IFRAME +\n WYMeditor.STATUS +\n \"
\" +\n \"\" +\n \"
\",\n toolsItems: [\n { name: \"Bold\", title: \"Strong\", css: \"wym_tools_strong\" },\n { name: \"Italic\", title: \"Emphasis\", css: \"wym_tools_emphasis\" },\n {\n name: \"Superscript\",\n title: \"Superscript\",\n css: \"wym_tools_superscript\"\n },\n {\n name: \"Subscript\",\n title: \"Subscript\",\n css: \"wym_tools_subscript\"\n },\n {\n name: \"InsertOrderedList\",\n title: \"Ordered_List\",\n css: \"wym_tools_ordered_list\"\n },\n {\n name: \"InsertUnorderedList\",\n title: \"Unordered_List\",\n css: \"wym_tools_unordered_list\"\n },\n { name: \"Indent\", title: \"Indent\", css: \"wym_tools_indent\" },\n { name: \"Outdent\", title: \"Outdent\", css: \"wym_tools_outdent\" },\n { name: \"Undo\", title: \"Undo\", css: \"wym_tools_undo\" },\n { name: \"Redo\", title: \"Redo\", css: \"wym_tools_redo\" },\n { name: \"CreateLink\", title: \"Link\", css: \"wym_tools_link\" },\n { name: \"Unlink\", title: \"Unlink\", css: \"wym_tools_unlink\" },\n { name: \"InsertImage\", title: \"Image\", css: \"wym_tools_image\" },\n { name: \"InsertTable\", title: \"Table\", css: \"wym_tools_table\" }\n ]\n });\n // Get the editor object\n var editor = $.wymeditors(0);\n var save = function(callback) {\n show_modal(\"Saving page\", \"progress\");\n\n // Do save.\n $.ajax({\n url: save_url,\n type: \"POST\",\n data: {\n id: page_id,\n content: editor.xhtml(),\n annotations: JSON.stringify(new Object()),\n // annotations: JSON.stringify(annotations),\n _: \"true\"\n },\n success: function() {\n callback();\n }\n });\n };\n // Save button\n $(\"#save-button\").click(function() {\n save(function() {\n hide_modal();\n });\n });\n // Close button\n $(\"#close-button\").click(function() {\n // var new_content = editor.xhtml();\n // var changed = ( initial_content != new_content );\n var changed = false;\n if (changed) {\n var do_close = function() {\n window.onbeforeunload = undefined;\n window.document.location = page_list_url;\n };\n show_modal(\n \"Close editor\",\n \"There are unsaved changes to your page which will be lost.\",\n {\n Cancel: hide_modal,\n \"Save Changes\": function() {\n save(do_close);\n }\n },\n {\n \"Don't Save\": do_close\n }\n );\n } else {\n window.document.location = page_list_url;\n }\n });\n\n // Initialize galaxy elements.\n //init_galaxy_elts(editor);\n\n //\n // Containers, Galaxy style\n //\n var containers_menu = $(\n \"\"\n );\n $(\".wym_area_top\").append(containers_menu);\n\n // Add menu options.\n var items = {};\n $.each(editor._options.containersItems, function(k, v) {\n var tagname = v.name;\n items[v.title.replace(\"_\", \" \")] = function() {\n editor.container(tagname);\n };\n });\n make_popupmenu(containers_menu, items);\n\n //\n // Create 'Insert Link to Galaxy Object' menu.\n //\n\n // Add menu button.\n var insert_link_menu_button = $(\n \"\"\n ).addClass(\"galaxy-page-editor-button\");\n $(\".wym_area_top\").append(insert_link_menu_button);\n\n // Add menu options.\n make_popupmenu(insert_link_menu_button, {\n \"Insert History Link\": function() {\n editor.dialog(CONTROLS.DIALOG_HISTORY_LINK);\n },\n \"Insert Dataset Link\": function() {\n editor.dialog(CONTROLS.DIALOG_DATASET_LINK);\n },\n \"Insert Workflow Link\": function() {\n editor.dialog(CONTROLS.DIALOG_WORKFLOW_LINK);\n },\n \"Insert Page Link\": function() {\n editor.dialog(CONTROLS.DIALOG_PAGE_LINK);\n },\n \"Insert Visualization Link\": function() {\n editor.dialog(CONTROLS.DIALOG_VISUALIZATION_LINK);\n }\n });\n\n //\n // Create 'Embed Galaxy Object' menu.\n //\n\n // Add menu button.\n var embed_object_button = $(\n \"\"\n ).addClass(\"galaxy-page-editor-button\");\n $(\".wym_area_top\").append(embed_object_button);\n\n // Add menu options.\n make_popupmenu(embed_object_button, {\n \"Embed History\": function() {\n editor.dialog(CONTROLS.DIALOG_EMBED_HISTORY);\n },\n \"Embed Dataset\": function() {\n editor.dialog(CONTROLS.DIALOG_EMBED_DATASET);\n },\n \"Embed Workflow\": function() {\n editor.dialog(CONTROLS.DIALOG_EMBED_WORKFLOW);\n },\n \"Embed Visualization\": function() {\n editor.dialog(CONTROLS.DIALOG_EMBED_VISUALIZATION);\n }\n //\"Embed Page\": function() {\n // editor.dialog(CONTROLS.DIALOG_EMBED_PAGE);\n //}\n });\n});\n"]} \ No newline at end of file +{"version":3,"sources":["galaxy.pages.js"],"names":["get_item_info","dialog_type","item_singular","item_plural","item_controller","ITEM_HISTORY","item_class","ITEM_DATASET","ITEM_WORKFLOW","ITEM_PAGE","ITEM_VISUALIZATION","item_list_action","toLowerCase","ajax_url","list_objects_url","replace","singular","plural","controller","make_item_importable","item_id","item_type","set_accessible_url","type","url","data","error","accessible","alert","CONTROLS","DIALOG_DATASET_LINK","DIALOG_WORKFLOW_LINK","DIALOG_HISTORY_LINK","DIALOG_VISUALIZATION_LINK","DIALOG_EMBED_DATASET","DIALOG_EMBED_WORKFLOW","DIALOG_EMBED_HISTORY","WYMeditor","editor","wym","dialog","dialogType","dialogFeatures","bodyHtml","this","sStamp","uniqueStamp","$","selected","_options","altSelector","val","hrefSelector","attr","HREF","curURL","curTitle","SRC","titleSelector","TITLE","ALT","show_modal","sUrl","sName","sId","link","Make link","hide_modal","Cancel","_exec","CREATE_LINK","_doc","body","DIALOG_IMAGE","_selected_image","dialogImageSelector","text","indexOf","attribute_input","addClass","removeClass","Insert","iRows","iCols","colsSelector","newRow","sCaption","table","createCaption","length","INSERT_IMAGE","item_info","rowsSelector","item_ids","Array","createElement","TABLE","captionSelector","innerHTML","x","insertRow","y","link_text","summarySelector","node","Close","findUp","Galaxy","modal","MAIN_CONTAINERS","get","parentNode","after","append","DIALOG_EMBED_PAGE","DIALOG_PAGE_LINK","DIALOG_EMBED_VISUALIZATION","require","url_base","dict_format","embedded","title","closing_events","buttons","Embed","make_importable","GridView","grid","list_ajax_url","show","$el","message","responseText","each","editor_base_path","iframe_base_path","name","getJSON","returned_item_info","insert","callback","JSON","stringify","hide","window","document","save","containers_menu","containersItems","tagname","v","items","container","make_popupmenu","insert_link_menu_button","item_name","embed_object_button","item_embed_html","iclass","join","ajaxError","e","statusText","Ignore error","wymeditor","skin","basePath","iframeBasePath","boxHtml","TOOLS","IFRAME","STATUS","toolsItems","css","wymeditors","ajax","save_url","id","page_id","content","xhtml","annotations","Object","_","success","click","location","page_list_url","k","Insert History Link","Insert Dataset Link","Insert Workflow Link","Insert Page Link","Insert Visualization Link","Embed History","Embed Dataset","Embed Workflow","Embed Visualization"],"mappings":"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","file":"../scripts/galaxy.pages.js","sourcesContent":["var CONTROLS = {\n // Item types.\n ITEM_HISTORY: \"item_history\",\n ITEM_DATASET: \"item_dataset\",\n ITEM_WORKFLOW: \"item_workflow\",\n ITEM_PAGE: \"item_page\",\n ITEM_VISUALIZATION: \"item_visualization\",\n\n // Link dialogs.\n DIALOG_HISTORY_LINK: \"link_history\",\n DIALOG_DATASET_LINK: \"link_dataset\",\n DIALOG_WORKFLOW_LINK: \"link_workflow\",\n DIALOG_PAGE_LINK: \"link_page\",\n DIALOG_VISUALIZATION_LINK: \"link_visualization\",\n\n // Embed dialogs.\n DIALOG_EMBED_HISTORY: \"embed_history\",\n DIALOG_EMBED_DATASET: \"embed_dataset\",\n DIALOG_EMBED_WORKFLOW: \"embed_workflow\",\n DIALOG_EMBED_PAGE: \"embed_page\",\n DIALOG_EMBED_VISUALIZATION: \"embed_visualization\"\n};\n\n// Initialize Galaxy elements.\nfunction init_galaxy_elts(wym) {\n // Set up events to make annotation easy.\n $(\".annotation\", wym._doc.body).each(function() {\n $(this).click(function() {\n // Works in Safari, not in Firefox.\n var range = wym._doc.createRange();\n range.selectNodeContents(this);\n var selection = window.getSelection();\n selection.removeAllRanges();\n selection.addRange(range);\n var t = \"\";\n });\n });\n}\n\n// Based on the dialog type, return a dictionary of information about an item\nfunction get_item_info(dialog_type) {\n var item_singular, item_plural, item_controller;\n switch (dialog_type) {\n case CONTROLS.ITEM_HISTORY:\n item_singular = \"History\";\n item_plural = \"Histories\";\n item_controller = \"history\";\n item_class = \"History\";\n break;\n case CONTROLS.ITEM_DATASET:\n item_singular = \"Dataset\";\n item_plural = \"Datasets\";\n item_controller = \"dataset\";\n item_class = \"HistoryDatasetAssociation\";\n break;\n case CONTROLS.ITEM_WORKFLOW:\n item_singular = \"Workflow\";\n item_plural = \"Workflows\";\n item_controller = \"workflow\";\n item_class = \"StoredWorkflow\";\n break;\n case CONTROLS.ITEM_PAGE:\n item_singular = \"Page\";\n item_plural = \"Pages\";\n item_controller = \"page\";\n item_class = \"Page\";\n break;\n case CONTROLS.ITEM_VISUALIZATION:\n item_singular = \"Visualization\";\n item_plural = \"Visualizations\";\n item_controller = \"visualization\";\n item_class = \"Visualization\";\n break;\n }\n\n // Build ajax URL that lists items for selection.\n var item_list_action =\n \"list_\" + item_plural.toLowerCase() + \"_for_selection\";\n var ajax_url = list_objects_url.replace(\"LIST_ACTION\", item_list_action);\n\n // Set up and return dict.\n return {\n singular: item_singular,\n plural: item_plural,\n controller: item_controller,\n iclass: item_class,\n list_ajax_url: ajax_url\n };\n}\n\n// Make an item importable.\nfunction make_item_importable(item_controller, item_id, item_type) {\n var ajax_url = set_accessible_url.replace(\n \"ITEM_CONTROLLER\",\n item_controller\n );\n $.ajax({\n type: \"POST\",\n url: ajax_url,\n data: { id: item_id, accessible: \"True\" },\n error: function() {\n alert(\"Making \" + item_type + \" accessible failed\");\n }\n });\n}\n\n// Completely replace WYM's dialog handling\nWYMeditor.editor.prototype.dialog = function(\n dialogType,\n dialogFeatures,\n bodyHtml\n) {\n var wym = this;\n var sStamp = wym.uniqueStamp();\n var selected = wym.selected();\n\n // Swap out URL attribute for id/name attribute in link creation to enable anchor creation in page.\n function set_link_id() {\n // When \"set link id\" link clicked, update UI.\n $(\"#set_link_id\").click(function() {\n // Set label.\n $(\"#link_attribute_label\").text(\"ID/Name\");\n\n // Set input elt class, value.\n var attribute_input = $(\".wym_href\");\n attribute_input.addClass(\"wym_id\").removeClass(\"wym_href\");\n if (selected) attribute_input.val($(selected).attr(\"id\"));\n\n // Remove link.\n $(this).remove();\n });\n }\n\n // LINK DIALOG\n if (dialogType == WYMeditor.DIALOG_LINK) {\n if (selected) {\n $(wym._options.hrefSelector).val($(selected).attr(WYMeditor.HREF));\n $(wym._options.srcSelector).val($(selected).attr(WYMeditor.SRC));\n $(wym._options.titleSelector).val(\n $(selected).attr(WYMeditor.TITLE)\n );\n $(wym._options.altSelector).val($(selected).attr(WYMeditor.ALT));\n }\n // Get current URL, title.\n var curURL, curTitle;\n if (selected) {\n curURL = $(selected).attr(\"href\");\n if (curURL == undefined) curURL = \"\";\n curTitle = $(selected).attr(\"title\");\n if (curTitle == undefined) curTitle = \"\";\n }\n show_modal(\n \"Create Link\",\n \"
\" +\n \"

\",\n {\n \"Make link\": function() {\n // Get URL, name/title.\n var sUrl = $(wym._options.hrefSelector).val() || \"\",\n sId = $(\".wym_id\").val() || \"\",\n sName = $(wym._options.titleSelector).val() || \"\";\n\n if (sUrl || sId) {\n // Create link.\n wym._exec(WYMeditor.CREATE_LINK, sStamp);\n\n // Set link attributes.\n var link = $(\"a[href=\" + sStamp + \"]\", wym._doc.body);\n link\n .attr(WYMeditor.HREF, sUrl)\n .attr(WYMeditor.TITLE, sName)\n .attr(\"id\", sId);\n\n // If link's text is default (wym-...), change it to the title.\n if (link.text().indexOf(\"wym-\") === 0) {\n link.text(sName);\n }\n }\n hide_modal();\n },\n Cancel: function() {\n hide_modal();\n }\n },\n {},\n set_link_id\n );\n }\n\n // IMAGE DIALOG\n if (dialogType == WYMeditor.DIALOG_IMAGE) {\n if (wym._selected_image) {\n $(\n wym._options.dialogImageSelector +\n \" \" +\n wym._options.srcSelector\n ).val($(wym._selected_image).attr(WYMeditor.SRC));\n $(\n wym._options.dialogImageSelector +\n \" \" +\n wym._options.titleSelector\n ).val($(wym._selected_image).attr(WYMeditor.TITLE));\n $(\n wym._options.dialogImageSelector +\n \" \" +\n wym._options.altSelector\n ).val($(wym._selected_image).attr(WYMeditor.ALT));\n }\n show_modal(\n \"Image\",\n \"
\" +\n \"
\" +\n \"\" +\n \"
\" +\n \"
\" +\n \"
\" +\n \"\" +\n \"
\" +\n \"
\" +\n \"
\" +\n \"\" +\n \"
\",\n {\n Insert: function() {\n var sUrl = $(wym._options.srcSelector).val();\n if (sUrl.length > 0) {\n wym._exec(WYMeditor.INSERT_IMAGE, sStamp);\n $(\"img[src$=\" + sStamp + \"]\", wym._doc.body)\n .attr(WYMeditor.SRC, sUrl)\n .attr(\n WYMeditor.TITLE,\n $(wym._options.titleSelector).val()\n )\n .attr(\n WYMeditor.ALT,\n $(wym._options.altSelector).val()\n );\n }\n hide_modal();\n },\n Cancel: function() {\n hide_modal();\n }\n }\n );\n return;\n }\n\n // TABLE DIALOG\n if (dialogType == WYMeditor.DIALOG_TABLE) {\n show_modal(\n \"Table\",\n \"
\" +\n \"
\" +\n \"\" +\n \"
\" +\n \"
\" +\n \"
\" +\n \"\" +\n \"
\" +\n \"
\" +\n \"\" +\n \"\" +\n \"
\" +\n \"
\" +\n \"\" +\n \"\" +\n \"
\",\n {\n Insert: function() {\n var iRows = $(wym._options.rowsSelector).val();\n var iCols = $(wym._options.colsSelector).val();\n\n if (iRows > 0 && iCols > 0) {\n var table = wym._doc.createElement(WYMeditor.TABLE);\n var newRow = null;\n var newCol = null;\n\n var sCaption = $(wym._options.captionSelector).val();\n\n //we create the caption\n var newCaption = table.createCaption();\n newCaption.innerHTML = sCaption;\n\n //we create the rows and cells\n for (var x = 0; x < iRows; x++) {\n newRow = table.insertRow(x);\n for (var y = 0; y < iCols; y++) {\n newRow.insertCell(y);\n }\n }\n\n //set the summary attr\n $(table).attr(\n \"summary\",\n $(wym._options.summarySelector).val()\n );\n\n //append the table after the selected container\n var node = $(\n wym.findUp(\n wym.container(),\n WYMeditor.MAIN_CONTAINERS\n )\n ).get(0);\n if (!node || !node.parentNode)\n $(wym._doc.body).append(table);\n else $(node).after(table);\n }\n hide_modal();\n },\n Cancel: function() {\n hide_modal();\n }\n }\n );\n }\n\n // INSERT \"GALAXY ITEM\" LINK DIALOG\n if (\n dialogType == CONTROLS.DIALOG_HISTORY_LINK ||\n dialogType == CONTROLS.DIALOG_DATASET_LINK ||\n dialogType == CONTROLS.DIALOG_WORKFLOW_LINK ||\n dialogType == CONTROLS.DIALOG_PAGE_LINK ||\n dialogType == CONTROLS.DIALOG_VISUALIZATION_LINK\n ) {\n // Based on item type, set useful vars.\n var item_info;\n switch (dialogType) {\n case CONTROLS.DIALOG_HISTORY_LINK:\n item_info = get_item_info(CONTROLS.ITEM_HISTORY);\n break;\n case CONTROLS.DIALOG_DATASET_LINK:\n item_info = get_item_info(CONTROLS.ITEM_DATASET);\n break;\n case CONTROLS.DIALOG_WORKFLOW_LINK:\n item_info = get_item_info(CONTROLS.ITEM_WORKFLOW);\n break;\n case CONTROLS.DIALOG_PAGE_LINK:\n item_info = get_item_info(CONTROLS.ITEM_PAGE);\n break;\n case CONTROLS.DIALOG_VISUALIZATION_LINK:\n item_info = get_item_info(CONTROLS.ITEM_VISUALIZATION);\n break;\n }\n\n require([\"mvc/grid/grid-view\"], function(GridView) {\n var grid = new GridView({\n url_base: item_info.list_ajax_url,\n dict_format: true,\n embedded: true\n });\n Galaxy.modal.show({\n title: \"Insert Link to \" + item_info.singular,\n body: $(\"
\")\n .append(grid.$el)\n .append(\n $(\"
\")\n .append(\n ''\n )\n .append(\n \"Make the selected \" +\n item_info.plural.toLowerCase() +\n \" accessible so that they can viewed by everyone.\"\n )\n ),\n closing_events: true,\n buttons: {\n Insert: function() {\n // Make selected items accessible (importable) ?\n var make_importable = false;\n if ($(\"#make-importable:checked\").val() != null)\n make_importable = true;\n\n // Insert links to history for each checked item.\n var item_ids = new Array();\n grid.$(\"input[name=id]:checked\").each(function() {\n var item_id = $(this).val();\n\n // Make item importable?\n if (make_importable)\n make_item_importable(\n item_info.controller,\n item_id,\n item_info.singular\n );\n\n // Insert link(s) to item(s). This is done by getting item info and then manipulating wym.\n var url_template = get_name_and_link_url + item_id;\n var ajax_url = url_template.replace(\n \"ITEM_CONTROLLER\",\n item_info.controller\n );\n $.getJSON(ajax_url, function(returned_item_info) {\n // Get link text.\n wym._exec(WYMeditor.CREATE_LINK, sStamp);\n var link_text = $(\n \"a[href=\" + sStamp + \"]\",\n wym._doc.body\n ).text();\n\n // Insert link: need to do different actions depending on link text.\n if (\n link_text == \"\" || // Firefox.\n link_text == sStamp // Safari\n ) {\n // User selected no text; create link from scratch and use default text.\n wym.insert(\n \"\" +\n item_info.singular +\n \" '\" +\n returned_item_info.name +\n \"'\"\n );\n } else {\n // Link created from selected text; add href and title.\n $(\"a[href=\" + sStamp + \"]\", wym._doc.body)\n .attr(\n WYMeditor.HREF,\n returned_item_info.link\n )\n .attr(\n WYMeditor.TITLE,\n item_info.singular + item_id\n );\n }\n });\n });\n Galaxy.modal.hide();\n },\n Close: function() {\n Galaxy.modal.hide();\n }\n }\n });\n });\n }\n // EMBED GALAXY OBJECT DIALOGS\n if (\n dialogType == CONTROLS.DIALOG_EMBED_HISTORY ||\n dialogType == CONTROLS.DIALOG_EMBED_DATASET ||\n dialogType == CONTROLS.DIALOG_EMBED_WORKFLOW ||\n dialogType == CONTROLS.DIALOG_EMBED_PAGE ||\n dialogType == CONTROLS.DIALOG_EMBED_VISUALIZATION\n ) {\n // Based on item type, set useful vars.\n var item_info;\n switch (dialogType) {\n case CONTROLS.DIALOG_EMBED_HISTORY:\n item_info = get_item_info(CONTROLS.ITEM_HISTORY);\n break;\n case CONTROLS.DIALOG_EMBED_DATASET:\n item_info = get_item_info(CONTROLS.ITEM_DATASET);\n break;\n case CONTROLS.DIALOG_EMBED_WORKFLOW:\n item_info = get_item_info(CONTROLS.ITEM_WORKFLOW);\n break;\n case CONTROLS.DIALOG_EMBED_PAGE:\n item_info = get_item_info(CONTROLS.ITEM_PAGE);\n break;\n case CONTROLS.DIALOG_EMBED_VISUALIZATION:\n item_info = get_item_info(CONTROLS.ITEM_VISUALIZATION);\n break;\n }\n\n require([\"mvc/grid/grid-view\"], function(GridView) {\n var grid = new GridView({\n url_base: item_info.list_ajax_url,\n dict_format: true,\n embedded: true\n });\n Galaxy.modal.show({\n title: \"Insert Link to \" + item_info.singular,\n body: $(\"
\")\n .append(grid.$el)\n .append(\n $(\"
\")\n .append(\n ''\n )\n .append(\n \"Make the selected \" +\n item_info.plural.toLowerCase() +\n \" accessible so that they can viewed by everyone.\"\n )\n ),\n closing_events: true,\n buttons: {\n Embed: function() {\n // Make selected items accessible (importable) ?\n var make_importable = false;\n if ($(\"#make-importable:checked\").val() != null)\n make_importable = true;\n\n grid.$(\"input[name=id]:checked\").each(function() {\n // Get item ID and name.\n var item_id = $(this).val();\n // Use ':first' because there are many labels in table; the first one is the item name.\n var item_name = $(\n \"label[for='\" + item_id + \"']:first\"\n ).text();\n\n if (make_importable)\n make_item_importable(\n item_info.controller,\n item_id,\n item_info.singular\n );\n\n // Embedded item HTML; item class is embedded in div container classes; this is necessary because the editor strips\n // all non-standard attributes when it returns its content (e.g. it will not return an element attribute of the form\n // item_class='History').\n var item_elt_id = item_info.iclass + \"-\" + item_id;\n var item_embed_html = [\n \"
\",\n \"

\",\n \"Embedded Galaxy \",\n item_info.singular,\n \" '\",\n item_name,\n \"'\",\n \"

\",\n \"

\",\n \"[Do not edit this block; Galaxy will fill it in with the annotated \",\n item_info.singular.toLowerCase(),\n \" when it is displayed.]\",\n \"

\",\n \"
\"\n ].join(\"\");\n\n // Insert embedded item into document.\n wym.insert(item_embed_html);\n });\n Galaxy.modal.hide();\n },\n Close: function() {\n Galaxy.modal.hide();\n }\n }\n });\n });\n }\n};\n\n$(function() {\n // Generic error handling\n $(document).ajaxError(function(e, x) {\n // console.log( e, x );\n var message =\n x.responseText || x.statusText || \"Could not connect to server\";\n show_modal(\"Server error\", message, { \"Ignore error\": hide_modal });\n return false;\n });\n // Create editor\n $(\"[name=page_content]\").wymeditor({\n skin: \"galaxy\",\n basePath: editor_base_path,\n iframeBasePath: iframe_base_path,\n boxHtml:\n \"\" +\n \"\" +\n \"
\" +\n WYMeditor.TOOLS +\n \"
\" +\n \"
\" +\n // + WYMeditor.HTML\n WYMeditor.IFRAME +\n WYMeditor.STATUS +\n \"
\" +\n \"\" +\n \"
\",\n toolsItems: [\n { name: \"Bold\", title: \"Strong\", css: \"wym_tools_strong\" },\n { name: \"Italic\", title: \"Emphasis\", css: \"wym_tools_emphasis\" },\n {\n name: \"Superscript\",\n title: \"Superscript\",\n css: \"wym_tools_superscript\"\n },\n {\n name: \"Subscript\",\n title: \"Subscript\",\n css: \"wym_tools_subscript\"\n },\n {\n name: \"InsertOrderedList\",\n title: \"Ordered_List\",\n css: \"wym_tools_ordered_list\"\n },\n {\n name: \"InsertUnorderedList\",\n title: \"Unordered_List\",\n css: \"wym_tools_unordered_list\"\n },\n { name: \"Indent\", title: \"Indent\", css: \"wym_tools_indent\" },\n { name: \"Outdent\", title: \"Outdent\", css: \"wym_tools_outdent\" },\n { name: \"Undo\", title: \"Undo\", css: \"wym_tools_undo\" },\n { name: \"Redo\", title: \"Redo\", css: \"wym_tools_redo\" },\n { name: \"CreateLink\", title: \"Link\", css: \"wym_tools_link\" },\n { name: \"Unlink\", title: \"Unlink\", css: \"wym_tools_unlink\" },\n { name: \"InsertImage\", title: \"Image\", css: \"wym_tools_image\" },\n { name: \"InsertTable\", title: \"Table\", css: \"wym_tools_table\" }\n ]\n });\n // Get the editor object\n var editor = $.wymeditors(0);\n var save = function(callback) {\n show_modal(\"Saving page\", \"progress\");\n\n // Do save.\n $.ajax({\n url: save_url,\n type: \"POST\",\n data: {\n id: page_id,\n content: editor.xhtml(),\n annotations: JSON.stringify(new Object()),\n // annotations: JSON.stringify(annotations),\n _: \"true\"\n },\n success: function() {\n callback();\n }\n });\n };\n // Save button\n $(\"#save-button\").click(function() {\n save(function() {\n hide_modal();\n });\n });\n // Close button\n $(\"#close-button\").click(function() {\n // var new_content = editor.xhtml();\n // var changed = ( initial_content != new_content );\n var changed = false;\n if (changed) {\n var do_close = function() {\n window.onbeforeunload = undefined;\n window.document.location = page_list_url;\n };\n show_modal(\n \"Close editor\",\n \"There are unsaved changes to your page which will be lost.\",\n {\n Cancel: hide_modal,\n \"Save Changes\": function() {\n save(do_close);\n }\n },\n {\n \"Don't Save\": do_close\n }\n );\n } else {\n window.document.location = page_list_url;\n }\n });\n\n // Initialize galaxy elements.\n //init_galaxy_elts(editor);\n\n //\n // Containers, Galaxy style\n //\n var containers_menu = $(\n \"\"\n );\n $(\".wym_area_top\").append(containers_menu);\n\n // Add menu options.\n var items = {};\n $.each(editor._options.containersItems, function(k, v) {\n var tagname = v.name;\n items[v.title.replace(\"_\", \" \")] = function() {\n editor.container(tagname);\n };\n });\n make_popupmenu(containers_menu, items);\n\n //\n // Create 'Insert Link to Galaxy Object' menu.\n //\n\n // Add menu button.\n var insert_link_menu_button = $(\n \"\"\n ).addClass(\"galaxy-page-editor-button\");\n $(\".wym_area_top\").append(insert_link_menu_button);\n\n // Add menu options.\n make_popupmenu(insert_link_menu_button, {\n \"Insert History Link\": function() {\n editor.dialog(CONTROLS.DIALOG_HISTORY_LINK);\n },\n \"Insert Dataset Link\": function() {\n editor.dialog(CONTROLS.DIALOG_DATASET_LINK);\n },\n \"Insert Workflow Link\": function() {\n editor.dialog(CONTROLS.DIALOG_WORKFLOW_LINK);\n },\n \"Insert Page Link\": function() {\n editor.dialog(CONTROLS.DIALOG_PAGE_LINK);\n },\n \"Insert Visualization Link\": function() {\n editor.dialog(CONTROLS.DIALOG_VISUALIZATION_LINK);\n }\n });\n\n //\n // Create 'Embed Galaxy Object' menu.\n //\n\n // Add menu button.\n var embed_object_button = $(\n \"\"\n ).addClass(\"galaxy-page-editor-button\");\n $(\".wym_area_top\").append(embed_object_button);\n\n // Add menu options.\n make_popupmenu(embed_object_button, {\n \"Embed History\": function() {\n editor.dialog(CONTROLS.DIALOG_EMBED_HISTORY);\n },\n \"Embed Dataset\": function() {\n editor.dialog(CONTROLS.DIALOG_EMBED_DATASET);\n },\n \"Embed Workflow\": function() {\n editor.dialog(CONTROLS.DIALOG_EMBED_WORKFLOW);\n },\n \"Embed Visualization\": function() {\n editor.dialog(CONTROLS.DIALOG_EMBED_VISUALIZATION);\n }\n //\"Embed Page\": function() {\n // editor.dialog(CONTROLS.DIALOG_EMBED_PAGE);\n //}\n });\n});\n"]} \ No newline at end of file diff --git a/static/maps/i18n.js.map b/static/maps/i18n.js.map index 71f56c3bc90..327dc0ed5ba 100644 --- a/static/maps/i18n.js.map +++ b/static/maps/i18n.js.map @@ -1 +1 @@ -{"version":3,"sources":["i18n.js"],"names":["nlsRegExp","locale","master","needed","toLoad","prefix","suffix","push","fullName","require","_fileExists","req","toUrl","mixin","target","source","force","prop","hasOwnProperty","define","module","masterConfig","config","version","load","name","onLoad","masterName","value","match","exec","split","parts","i","addIfExists","navigator","language","userLanguage","toLowerCase","current","length","part","addPart","partBundle"],"mappings":"oOAoCA,WASI,SAAIA,EAAYC,EAAAC,EAAAC,EAAAC,EAAAC,EAAhBC,GAMQJ,EAAOD,KAJfE,EAAAI,KAAAN,IACA,IAAAC,EAAAD,IAAA,IAAAC,EAAAD,IACAG,EAAAG,KAAAF,EAAAJ,EAAA,IAAAK,IAKYF,SAAAA,EAAOG,EAAKF,EAASJ,EAASI,EAAMC,GACvC,IAAAE,EAAAH,EAAAJ,EAAA,IAAAK,EACJG,QAAAC,YAAAC,EAAAC,MAAAJ,EAAA,SACJJ,EAAAG,KAAAC,GAgBD,SAASK,EAAMC,EAAQC,EAAQC,GAC3B,IAAIC,EACJ,IAAKA,KAAQF,GAELA,EAAOG,eAAeD,IAJlCH,EAAAI,eAAAD,KAAsCD,EAI1B,WAAOE,QAAAA,EAAPD,OAGAH,EAAAG,IAAeF,EAAfE,KACGH,EAAIG,OAEHH,EAAAA,EAAOG,GAAQF,EAAfE,GAAAD,IARPC,EAAQF,GAAQA,EAAAE,GAlCzB,IAAAjB,EAAA,0CA+CCmB,QAAA,UAAA,SAAAC,GAGG,IAAIC,EAAeD,EAAOE,OAASF,EAAOE,YAA1C,OAGIC,QAAS,QAITC,KAAM,SAASC,EAAMd,EAAKe,EAAQJ,IAC9BA,EAASA,OAAAA,SAGLD,EAAapB,OAASqB,EAAOrB,QAChC,IAAA0B,EAQGvB,EACAwB,EANAC,EAAQ7B,EAAU8B,KAAKL,GADvBE,EAAAA,EAAJ,GACIE,EAAQ7B,EAAAA,GACRK,EAASwB,EAAM,GACf5B,EAAAA,EAAe8B,MAHnB,KAIIzB,KACA0B,KAGAC,EARJ,GAwCIC,GA3BJL,EAAA,GAGIF,GADAE,EAAJA,EAAc,IACVvB,GADJqB,EAIOF,EACHnB,EAAAuB,EAAA,IACAF,EAAAA,EAAA1B,UAEAA,EAASoB,EAAapB,OACT,oBAAAkC,UACAd,QAOZc,UAAAC,UACcL,UAAfM,cACH,QAHmBC,eAMhBN,EAAA/B,EAAA8B,MAAA,MAGAG,EAAAA,QAAA,CAKC,IAFGK,EAAAA,KAAAA,GACAL,EAAAA,EAAYvB,OAAK4B,EAASnC,EAAQC,GACrC4B,EAAA,EAAAA,EAAAD,EAAAQ,OAAAP,IAHGQ,EAAOT,EAAMC,GAMbP,EAAAA,EADAtB,IAAQmC,EAAW,IAAA,IAAAE,EACnBf,EAAAA,EAAAA,GAGJf,EAAAP,EAAA,WACIsB,WAAJf,GAAKgB,GAAa,SAASzB,GAMvBwC,IACAD,EADAC,KAYC,IARGA,EAAAA,OACIH,EACArC,EACAC,EACAC,EACAC,GAGP4B,EAAA,EAAAA,EAAAD,EAAAQ,OAAAP,IAVGQ,EAAOT,EAAMC,GAab7B,EADJmC,IAAAA,EAAA,IAAA,IAAAE,EAGIvC,EAKIuC,EACAE,EACAtC,EACIsC,GAORhC,EAAAP,EAAA,WACAsB,IAAAA,EAAOE,EAAPa,EAlBJ,IArBJR,EAAA9B,EAAAqC,OAAA,EA0CHP,GAAA,GAAA9B,EAAA8B,GACJA,KAbsC,KAvJnDU,EAAAzC,EAsDIuC,EAAAtC,EAAA8B,MAiGsE,IAAfU,IACvBA,EAAahC,EACTN,EAASoC,EAAO,IAAMnC,IAG9BO,EAAMe,EAAOe,GAIjBjB,EAAOE,WAhKnC","file":"../scripts/i18n.js","sourcesContent":["/**\n * @license RequireJS i18n 2.0.4 Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved.\n * Available via the MIT or new BSD license.\n * see: http://github.com/requirejs/i18n for details\n */\n/*jslint regexp: true */\n/*global require: false, navigator: false, define: false */\n\n/**\n * This plugin handles i18n! prefixed modules. It does the following:\n *\n * 1) A regular module can have a dependency on an i18n bundle, but the regular\n * module does not want to specify what locale to load. So it just specifies\n * the top-level bundle, like \"i18n!nls/colors\".\n *\n * This plugin will load the i18n bundle at nls/colors, see that it is a root/master\n * bundle since it does not have a locale in its name. It will then try to find\n * the best match locale available in that master bundle, then request all the\n * locale pieces for that best match locale. For instance, if the locale is \"en-us\",\n * then the plugin will ask for the \"en-us\", \"en\" and \"root\" bundles to be loaded\n * (but only if they are specified on the master bundle).\n *\n * Once all the bundles for the locale pieces load, then it mixes in all those\n * locale pieces into each other, then finally sets the context.defined value\n * for the nls/colors bundle to be that mixed in locale.\n *\n * 2) A regular module specifies a specific locale to load. For instance,\n * i18n!nls/fr-fr/colors. In this case, the plugin needs to load the master bundle\n * first, at nls/colors, then figure out what the best match locale is for fr-fr,\n * since maybe only fr or just root is defined for that locale. Once that best\n * fit is found, all of its locale pieces need to have their bundles loaded.\n *\n * Once all the bundles for the locale pieces load, then it mixes in all those\n * locale pieces into each other, then finally sets the context.defined value\n * for the nls/fr-fr/colors bundle to be that mixed in locale.\n */\n(function() {\n \"use strict\";\n\n //regexp for reconstructing the master bundle name from parts of the regexp match\n //nlsRegExp.exec(\"foo/bar/baz/nls/en-ca/foo\") gives:\n //[\"foo/bar/baz/nls/en-ca/foo\", \"foo/bar/baz/nls/\", \"/\", \"/\", \"en-ca\", \"foo\"]\n //nlsRegExp.exec(\"foo/bar/baz/nls/foo\") gives:\n //[\"foo/bar/baz/nls/foo\", \"foo/bar/baz/nls/\", \"/\", \"/\", \"foo\", \"\"]\n //so, if match[5] is blank, it means this is the top bundle definition.\n var nlsRegExp = /(^.*(^|\\/)nls(\\/|$))([^\\/]*)\\/?([^\\/]*)/;\n\n //Helper function to avoid repeating code. Lots of arguments in the\n //desire to stay functional and support RequireJS contexts without having\n //to know about the RequireJS contexts.\n function addPart(locale, master, needed, toLoad, prefix, suffix) {\n if (master[locale]) {\n needed.push(locale);\n if (master[locale] === true || master[locale] === 1) {\n toLoad.push(prefix + locale + \"/\" + suffix);\n }\n }\n }\n\n function addIfExists(req, locale, toLoad, prefix, suffix) {\n var fullName = prefix + locale + \"/\" + suffix;\n if (require._fileExists(req.toUrl(fullName + \".js\"))) {\n toLoad.push(fullName);\n }\n }\n\n /**\n * Simple function to mix in properties from source into target,\n * but only if target does not already have a property of the same name.\n * This is not robust in IE for transferring methods that match\n * Object.prototype names, but the uses of mixin here seem unlikely to\n * trigger a problem related to that.\n */\n function mixin(target, source, force) {\n var prop;\n for (prop in source) {\n if (\n source.hasOwnProperty(prop) &&\n (!target.hasOwnProperty(prop) || force)\n ) {\n target[prop] = source[prop];\n } else if (typeof source[prop] === \"object\") {\n if (!target[prop] && source[prop]) {\n target[prop] = {};\n }\n mixin(target[prop], source[prop], force);\n }\n }\n }\n\n define([\"module\"], function(module) {\n var masterConfig = module.config ? module.config() : {};\n\n return {\n version: \"2.0.4\",\n /**\n * Called when a dependency needs to be loaded.\n */\n load: function(name, req, onLoad, config) {\n config = config || {};\n\n if (config.locale) {\n masterConfig.locale = config.locale;\n }\n\n var masterName,\n match = nlsRegExp.exec(name),\n prefix = match[1],\n locale = match[4],\n suffix = match[5],\n parts = locale.split(\"-\"),\n toLoad = [],\n value = {},\n i,\n part,\n current = \"\";\n\n //If match[5] is blank, it means this is the top bundle definition,\n //so it does not have to be handled. Locale-specific requests\n //will have a match[4] value but no match[5]\n if (match[5]) {\n //locale-specific bundle\n prefix = match[1];\n masterName = prefix + suffix;\n } else {\n //Top-level bundle.\n masterName = name;\n suffix = match[4];\n locale = masterConfig.locale;\n if (!locale) {\n locale = masterConfig.locale =\n typeof navigator === \"undefined\"\n ? \"root\"\n : (navigator.language ||\n navigator.userLanguage ||\n \"root\"\n ).toLowerCase();\n }\n parts = locale.split(\"-\");\n }\n\n if (config.isBuild) {\n //Check for existence of all locale possible files and\n //require them if exist.\n toLoad.push(masterName);\n addIfExists(req, \"root\", toLoad, prefix, suffix);\n for (i = 0; i < parts.length; i++) {\n part = parts[i];\n current += (current ? \"-\" : \"\") + part;\n addIfExists(req, current, toLoad, prefix, suffix);\n }\n\n req(toLoad, function() {\n onLoad();\n });\n } else {\n //First, fetch the master bundle, it knows what locales are available.\n req([masterName], function(master) {\n //Figure out the best fit\n var needed = [],\n part;\n\n //Always allow for root, then do the rest of the locale parts.\n addPart(\"root\", master, needed, toLoad, prefix, suffix);\n for (i = 0; i < parts.length; i++) {\n part = parts[i];\n current += (current ? \"-\" : \"\") + part;\n addPart(\n current,\n master,\n needed,\n toLoad,\n prefix,\n suffix\n );\n }\n\n //Load all the parts missing.\n req(toLoad, function() {\n var i, partBundle, part;\n for (\n i = needed.length - 1;\n i > -1 && needed[i];\n i--\n ) {\n part = needed[i];\n partBundle = master[part];\n if (partBundle === true || partBundle === 1) {\n partBundle = req(\n prefix + part + \"/\" + suffix\n );\n }\n mixin(value, partBundle);\n }\n\n //All done, notify the loader.\n onLoad(value);\n });\n });\n }\n }\n };\n });\n})();\n"]} \ No newline at end of file +{"version":3,"sources":["i18n.js"],"names":["addPart","locale","master","needed","toLoad","prefix","suffix","push","addIfExists","req","fullName","require","toUrl","mixin","target","source","force","prop","hasOwnProperty","_typeof","nlsRegExp","masterConfig","module","config","version","load","i","part","name","match","parts","split","value","current","masterName","navigator","language","userLanguage","toLowerCase","isBuild","length","partBundle","onLoad"],"mappings":"mPAoCA,WAKI,SAAAA,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GACAJ,EAAAD,KACAE,EAAAI,KAAAN,IACA,IAAAC,EAAAD,IAAA,IAAAC,EAAAD,IAUYG,EAAOG,KAAKF,EAASJ,EAAS,IAAMK,IALhD,SAAAE,EAAAC,EAAAR,EAAAG,EAAAC,EAAAC,GACA,IAAAI,EAASV,EAATC,EAAiCE,IAAjCG,EACIK,QAAIT,YAAgBO,EAAAG,MAAAF,EAAA,SAChBP,EAAAA,KAAOI,GAWV,SAAAM,EAAAC,EAAAC,EAAAC,GACJ,IAAAC,EAWG,IAAKA,KAAQF,GAELA,EAAOG,eAAeD,IACpBH,EAAOI,eAAeD,KAASD,EAGF,WAAxBG,EAAOJ,EAAOE,OAChBH,EAAOG,IAASF,EAAOE,KAT/BJ,EAAMC,OAEXD,EAAAC,EAAaC,GAAQA,EAAAE,GAAAD,IAKbF,EAAOG,GAAQF,EAAOE,GA5CtC,IAACG,EAAW,0CA+CQN,QAAAA,UAAAA,SAAOG,GACV,IAAAI,EAAAC,EAAAC,OAAAD,EAAAC,YAEJ,OACJC,QAAA,QAIDC,KAAIJ,SAAAA,EAAeC,EAAOC,EAAPA,IAQXA,EAASA,OALJtB,SACToB,EAAApB,OAAAsB,EAAAtB,QAGAwB,IAAAA,EAOIC,EAAAC,EANAJ,EAAAA,EAASA,KAATK,GAQIvB,EAASwB,EAAM,GANnB5B,EAAIsB,EAAOtB,GACPoB,EAAAA,EAAAA,GACHS,EAAA7B,EAAA8B,MAAA,KAQG3B,KANJ4B,KAAAC,EAGIhC,GAiCJ,GApCA4B,EAAA,GAkBIK,GAlBJ7B,EAUI4B,EAAU,IAQY3B,GAJ1B4B,EAAAN,EACAtB,EAAIuB,EAAU,IACV5B,EAAAoB,EAAApB,UAEAiC,EAAAA,EAAsB5B,OACnB,oBAAA6B,UACH,QACAD,UAAAE,UACSP,UAATQ,cACShB,QACTiB,eAQCR,EAAA7B,EAAA8B,MAAA,MAIDR,EAAOgB,QAAS,CAIhB/B,IAFAJ,EAAAG,KAAA2B,GACA9B,EAAOG,EAAK2B,OAAAA,EAAZ7B,EAAAC,GACAE,EAAAA,EAAAA,EAAYC,EAAK+B,OAAQpC,IACzBuB,EAAKD,EAAOA,GAERO,EAAAA,EADAN,IAAOG,EAAP,IAAA,IAAAH,EACsBvB,EAAXC,EAAXC,GAIJG,EAAIL,EAAQ,WAAZK,WAIAA,GAAAyB,GAAA,SAAAhC,GAEI,IACAyB,EADAxB,KAKAH,IADAA,EAAA,OAAAE,EAAAC,EAAAC,EAAAC,EAAAC,GACAN,EAAAA,EAAQ0B,EAAAI,EAAQ5B,OAAQC,IACxBwB,EAAKD,EAAOA,GAERO,EADAN,IAAOG,EAAP,IAAA,IAAAH,EAUHzB,EALOC,EAORC,EACIA,EACAE,GASQmC,EAAAA,EAAAA,WAGH,IAAAf,EAAAe,EAAAd,EACDd,IACHa,EAAAvB,EAAAqC,OAAA,EAXGd,GAAK,GAAKvB,EAAOuB,GAarBA,KAIX,KA1CGe,EAAAvC,EAqBIyB,EAAAxB,EAAAuB,MAqBP,IAAAe,IACJA,EAAAhC,EA3GLJ,EAAAsB,EAAA,IAAArB,IAmGwBO,EAAMmB,EAAOS,GAIjBC,EAAOV,WAhKnC","file":"../scripts/i18n.js","sourcesContent":["/**\n * @license RequireJS i18n 2.0.4 Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved.\n * Available via the MIT or new BSD license.\n * see: http://github.com/requirejs/i18n for details\n */\n/*jslint regexp: true */\n/*global require: false, navigator: false, define: false */\n\n/**\n * This plugin handles i18n! prefixed modules. It does the following:\n *\n * 1) A regular module can have a dependency on an i18n bundle, but the regular\n * module does not want to specify what locale to load. So it just specifies\n * the top-level bundle, like \"i18n!nls/colors\".\n *\n * This plugin will load the i18n bundle at nls/colors, see that it is a root/master\n * bundle since it does not have a locale in its name. It will then try to find\n * the best match locale available in that master bundle, then request all the\n * locale pieces for that best match locale. For instance, if the locale is \"en-us\",\n * then the plugin will ask for the \"en-us\", \"en\" and \"root\" bundles to be loaded\n * (but only if they are specified on the master bundle).\n *\n * Once all the bundles for the locale pieces load, then it mixes in all those\n * locale pieces into each other, then finally sets the context.defined value\n * for the nls/colors bundle to be that mixed in locale.\n *\n * 2) A regular module specifies a specific locale to load. For instance,\n * i18n!nls/fr-fr/colors. In this case, the plugin needs to load the master bundle\n * first, at nls/colors, then figure out what the best match locale is for fr-fr,\n * since maybe only fr or just root is defined for that locale. Once that best\n * fit is found, all of its locale pieces need to have their bundles loaded.\n *\n * Once all the bundles for the locale pieces load, then it mixes in all those\n * locale pieces into each other, then finally sets the context.defined value\n * for the nls/fr-fr/colors bundle to be that mixed in locale.\n */\n(function() {\n \"use strict\";\n\n //regexp for reconstructing the master bundle name from parts of the regexp match\n //nlsRegExp.exec(\"foo/bar/baz/nls/en-ca/foo\") gives:\n //[\"foo/bar/baz/nls/en-ca/foo\", \"foo/bar/baz/nls/\", \"/\", \"/\", \"en-ca\", \"foo\"]\n //nlsRegExp.exec(\"foo/bar/baz/nls/foo\") gives:\n //[\"foo/bar/baz/nls/foo\", \"foo/bar/baz/nls/\", \"/\", \"/\", \"foo\", \"\"]\n //so, if match[5] is blank, it means this is the top bundle definition.\n var nlsRegExp = /(^.*(^|\\/)nls(\\/|$))([^\\/]*)\\/?([^\\/]*)/;\n\n //Helper function to avoid repeating code. Lots of arguments in the\n //desire to stay functional and support RequireJS contexts without having\n //to know about the RequireJS contexts.\n function addPart(locale, master, needed, toLoad, prefix, suffix) {\n if (master[locale]) {\n needed.push(locale);\n if (master[locale] === true || master[locale] === 1) {\n toLoad.push(prefix + locale + \"/\" + suffix);\n }\n }\n }\n\n function addIfExists(req, locale, toLoad, prefix, suffix) {\n var fullName = prefix + locale + \"/\" + suffix;\n if (require._fileExists(req.toUrl(fullName + \".js\"))) {\n toLoad.push(fullName);\n }\n }\n\n /**\n * Simple function to mix in properties from source into target,\n * but only if target does not already have a property of the same name.\n * This is not robust in IE for transferring methods that match\n * Object.prototype names, but the uses of mixin here seem unlikely to\n * trigger a problem related to that.\n */\n function mixin(target, source, force) {\n var prop;\n for (prop in source) {\n if (\n source.hasOwnProperty(prop) &&\n (!target.hasOwnProperty(prop) || force)\n ) {\n target[prop] = source[prop];\n } else if (typeof source[prop] === \"object\") {\n if (!target[prop] && source[prop]) {\n target[prop] = {};\n }\n mixin(target[prop], source[prop], force);\n }\n }\n }\n\n define([\"module\"], function(module) {\n var masterConfig = module.config ? module.config() : {};\n\n return {\n version: \"2.0.4\",\n /**\n * Called when a dependency needs to be loaded.\n */\n load: function(name, req, onLoad, config) {\n config = config || {};\n\n if (config.locale) {\n masterConfig.locale = config.locale;\n }\n\n var masterName,\n match = nlsRegExp.exec(name),\n prefix = match[1],\n locale = match[4],\n suffix = match[5],\n parts = locale.split(\"-\"),\n toLoad = [],\n value = {},\n i,\n part,\n current = \"\";\n\n //If match[5] is blank, it means this is the top bundle definition,\n //so it does not have to be handled. Locale-specific requests\n //will have a match[4] value but no match[5]\n if (match[5]) {\n //locale-specific bundle\n prefix = match[1];\n masterName = prefix + suffix;\n } else {\n //Top-level bundle.\n masterName = name;\n suffix = match[4];\n locale = masterConfig.locale;\n if (!locale) {\n locale = masterConfig.locale =\n typeof navigator === \"undefined\"\n ? \"root\"\n : (navigator.language ||\n navigator.userLanguage ||\n \"root\"\n ).toLowerCase();\n }\n parts = locale.split(\"-\");\n }\n\n if (config.isBuild) {\n //Check for existence of all locale possible files and\n //require them if exist.\n toLoad.push(masterName);\n addIfExists(req, \"root\", toLoad, prefix, suffix);\n for (i = 0; i < parts.length; i++) {\n part = parts[i];\n current += (current ? \"-\" : \"\") + part;\n addIfExists(req, current, toLoad, prefix, suffix);\n }\n\n req(toLoad, function() {\n onLoad();\n });\n } else {\n //First, fetch the master bundle, it knows what locales are available.\n req([masterName], function(master) {\n //Figure out the best fit\n var needed = [],\n part;\n\n //Always allow for root, then do the rest of the locale parts.\n addPart(\"root\", master, needed, toLoad, prefix, suffix);\n for (i = 0; i < parts.length; i++) {\n part = parts[i];\n current += (current ? \"-\" : \"\") + part;\n addPart(\n current,\n master,\n needed,\n toLoad,\n prefix,\n suffix\n );\n }\n\n //Load all the parts missing.\n req(toLoad, function() {\n var i, partBundle, part;\n for (\n i = needed.length - 1;\n i > -1 && needed[i];\n i--\n ) {\n part = needed[i];\n partBundle = master[part];\n if (partBundle === true || partBundle === 1) {\n partBundle = req(\n prefix + part + \"/\" + suffix\n );\n }\n mixin(value, partBundle);\n }\n\n //All done, notify the loader.\n onLoad(value);\n });\n });\n }\n }\n };\n });\n})();\n"]} \ No newline at end of file diff --git a/static/maps/layout/generic-nav-view.js.map b/static/maps/layout/generic-nav-view.js.map index cac8c0af1a7..c565fc5c816 100644 --- a/static/maps/layout/generic-nav-view.js.map +++ b/static/maps/layout/generic-nav-view.js.map @@ -1 +1 @@ -{"version":3,"sources":["layout/generic-nav-view.js"],"names":["define","Modal","GenericNavView","Backbone","View","extend","initialize","makeModalIframe","e","frame_height","frame_width","class_names","Galaxy","config","communication_server_host","header_template","window","communication_server_port","src","$el_chat_modal_body","username","escape","cls","$","remove","modal","show","$el_chat_modal_header","iframe_template","width","addClass","click","find","removeAttr","append","css","removeClass","attr","height","self","navItem","tooltip","visible","render","id","icon","onclick"],"mappings":"aACAA,QAAQ,mBAAoB,SAASC,GADrC,IAAAC,EAAAC,SAAAC,KAAAC,QACQC,WAAA,WACAJ,KAAAA,MAAiBC,MAMjBI,gBAAiB,SAASC,GAA1BD,IAwBQE,EAtBJ,KAuBIC,EAvBJ,KAwBIC,EATI,+DAjBZJ,OAAiBK,OAAAC,OAAAC,0BAoBTC,IAnBJC,OAAAJ,OAAAC,OAAAI,2BAYIC,aAXOF,OAAOJ,OAAOC,OAAOC,KAAAA,WAAAA,UAa5BK,mCAZ4BF,OAC5BG,OAAWC,OAAOL,OAAOJ,kCAyBvB,eA6DN,OAnDIU,EAAAA,eAAKX,OAAAA,GANTY,EAAA,eAAAC,SAUAtB,EAAeuB,MAAMC,IAArBzB,EAAAG,MACAuB,KAAAA,EACAR,OAXUS,IAYVC,MAXYpB,IAYZkB,gBAAAA,EACAR,iBAAoBW,EACpBH,IAbWjB,wBAiBXa,EAAEE,MAAgBM,OACdR,EAAAA,EAAqB,6BACxBJ,EAFDI,EAAA,2BAIAA,EAAEO,SAA0BC,qBACxBZ,EAAMW,SAAA,qBACFP,EAAES,KAAA,MAAAR,SACFD,EAAEU,WAAA,6BACFV,EAAEW,OA9BT,uPAkCOX,EAAAA,gBAAEQ,MAAA,SAAAvB,GACLe,EARD,eAQOY,IAAA,UAAA,UAGHZ,EAAAA,0BAAEQ,MAAF,SACKK,GAELb,EAAE,0BAA0Bc,SAAK,cACjCd,EAAE,6BAAFM,MAAgC,UACnCN,EAAA,2BAAAe,OAAA,SAjBLf,EAAA,0BAmBAa,YAAA,aAlFkCN,SAAA,eAsE1BP,EAAE,0BAA0Bc,KAAK,QAAS,YAetDd,EAAA,0BAAAY,IAAA,cAAA,WAEQI,EAAAA,6BAAJV,MAAAnB,SACI8B,EAAAA,2BADJF,OAAA7B,SAEA+B,EAAU,0BACFJ,YAAA,eACEN,SAAA,aACNW,EAAAA,0BAHMJ,KAAA,QAAA,YAINK,EAAAA,0BAJMP,IAAA,cAAA,YAOHK,MAIfG,OAAO,WAJC,OANIC,GAAI,mBACJC,KAAM,eACNJ,QAAS,cACTC,SAAS,EACTI,QAOR5C,KAPsBK,oBAM1B,OACIL,eAAgBA","file":"../../scripts/layout/generic-nav-view.js","sourcesContent":["/** Real-time Communication feature **/\ndefine([\"mvc/ui/ui-modal\"], function(Modal) {\n var GenericNavView = Backbone.View.extend({\n initialize: function() {\n this.modal = null;\n },\n\n /** makes bootstrap modal and iframe inside it */\n makeModalIframe: function(e) {\n // make modal\n var host = window.Galaxy.config.communication_server_host,\n port = window.Galaxy.config.communication_server_port,\n username = escape(window.Galaxy.user.attributes.username),\n persistent_communication_rooms = escape(\n window.Galaxy.config.persistent_communication_rooms\n ),\n query_string =\n \"?username=\" +\n username +\n \"&persistent_communication_rooms=\" +\n persistent_communication_rooms,\n src = host + \":\" + port + query_string,\n $el_chat_modal_header = null,\n $el_chat_modal_body = null,\n iframe_template =\n '',\n header_template =\n '' +\n '' +\n '',\n frame_height = 350,\n frame_width = 600,\n class_names = \"ui-modal chat-modal\";\n\n // deletes the chat modal if already present and create one\n if ($(\".chat-modal\").length > 0) {\n $(\".chat-modal\").remove();\n }\n // creates a modal\n GenericNavView.modal = new Modal.View({\n body: iframe_template,\n height: frame_height,\n width: frame_width,\n closing_events: true,\n title_separator: false,\n cls: class_names\n });\n\n // shows modal\n GenericNavView.modal.show();\n $el_chat_modal_header = $(\".chat-modal .modal-header\");\n $el_chat_modal_body = $(\".chat-modal .modal-body\");\n // adjusts the css of bootstrap modal for chat\n $el_chat_modal_header.addClass(\"modal-header-body\");\n $el_chat_modal_body.addClass(\"modal-header-body\");\n $el_chat_modal_header.find(\"h4\").remove();\n $el_chat_modal_header.removeAttr(\"min-height padding border\");\n $el_chat_modal_header.append(header_template);\n // click event of the close button for chat\n $(\".close-modal\").click(function(e) {\n $(\".chat-modal\").css(\"display\", \"none\");\n });\n // click event of expand and compress icon\n $(\".expand-compress-modal\").click(function(e) {\n if ($(\".expand-compress-modal\").hasClass(\"fa-expand\")) {\n $(\".chat-modal .modal-dialog\").width(\"1000px\");\n $(\".chat-modal .modal-body\").height(\"575px\");\n $(\".expand-compress-modal\")\n .removeClass(\"fa-expand\")\n .addClass(\"fa-compress\");\n $(\".expand-compress-modal\").attr(\"title\", \"Minimize\");\n $(\".expand-compress-modal\").css(\"margin-left\", \"96.2%\");\n } else {\n $(\".chat-modal .modal-dialog\").width(frame_width + \"px\");\n $(\".chat-modal .modal-body\").height(frame_height + \"px\");\n $(\".expand-compress-modal\")\n .removeClass(\"fa-compress\")\n .addClass(\"fa-expand\");\n $(\".expand-compress-modal\").attr(\"title\", \"Maximize\");\n $(\".expand-compress-modal\").css(\"margin-left\", \"93.2%\");\n }\n });\n return this;\n },\n\n /**renders the chat icon as a nav item*/\n render: function() {\n var self = this,\n navItem = {};\n navItem = {\n id: \"show-chat-online\",\n icon: \"fa-comment-o\",\n tooltip: \"Chat online\",\n visible: false,\n onclick: self.makeModalIframe\n };\n return navItem;\n }\n });\n\n return {\n GenericNavView: GenericNavView\n };\n});\n"]} \ No newline at end of file +{"version":3,"sources":["layout/generic-nav-view.js"],"names":["define","Modal","GenericNavView","Backbone","View","extend","initialize","this","modal","makeModalIframe","e","$el_chat_modal_header","$el_chat_modal_body","iframe_template","class_names","window","Galaxy","config","communication_server_host","communication_server_port","query_string","escape","user","attributes","username","port","title_separator","cls","closing_events","frame_height","show","$","click","addClass","find","remove","removeAttr","append","css","height","hasClass","removeClass","width","attr","frame_width","self","navItem","icon","tooltip","render","id","visible","onclick"],"mappings":"kCACAA,QAAQ,mBAAoB,SAASC,GACjC,IAAIC,EAAiBC,SAASC,KAAKC,QAFvCC,WAAA,WACQC,KAAAC,MAAA,MAICC,gBAHqC,SAAAC,GAKtC,IAGIC,EAmBQ,KAnBRC,EAAA,KAAAC,EAwBIC,+DA3BRC,OAAAC,OAAAC,OAAAC,0BAiBQL,IAhBRJ,OAAiBO,OAAAC,OAAAE,2BAQTC,aAPJC,OAAAN,OAAAC,OAAAM,KAAAC,WAAAC,UAaIb,mCAZ4BO,OAC5BO,OAAOV,OAAOC,OAAOC,kCAyBzB,eAuDU,OA7CNS,EAAAA,eAAAA,OALkC,GAMlCC,EAAAA,eAAKb,SAGTZ,EAAAM,MAAA,IAAAP,EAAAG,MACAF,KAAAA,EACAS,OAXeH,IAYfI,MAXUC,IAYVe,gBAAA,EACAjB,iBAAAA,EACAC,IAbYiB,wBAiBZ3B,EAAAM,MAAAsB,OACAC,EAAkBC,EAAAA,6BACdD,EAAEA,EAAF,2BAEJpB,EAAAsB,SAAA,qBACAF,EAAEE,SAAA,qBACEtB,EAAMuB,KAAA,MAAAC,SACFJ,EAAEK,WAAA,6BACFL,EAAEM,OA9BNN,uPAkCIA,EAAAA,gBAAEC,MAAA,SAAAtB,GACFqB,EAAAA,eAAEO,IAAA,UAAA,UAGFP,EAAAA,0BAAEC,MAAA,SAA2BO,GAC7BR,EAAAA,0BAAES,SACGC,cAELV,EAAAA,6BAAAW,MAAiC,UACjCX,EAAAA,2BAAEQ,OAA8B,SACnCR,EAAA,0BAjBLU,YAAA,aAmBOR,SAAP,eAlFkCF,EAAA,0BAAAY,KAAA,QAAA,YAuE1BZ,EAAE,0BAA0BO,IAAI,cAAe,WAenDP,EAAA,6BAAWW,MAAAE,SACXC,EAAAA,2BAAJN,OAAAV,SACIiB,EAAAA,0BACJA,YAAU,eACFb,SAAA,aACJc,EAAAA,0BAFMJ,KAAA,QAAA,YAGNK,EAAAA,0BAHMV,IAAA,cAAA,YAAV/B,MAHJ0C,OAAQ,WAUJ,OAjGZC,GAAA,mBA4FgBH,KAAM,eACNC,QAAS,cACTG,SAAS,EACTC,QAML7C,KANmBE,oBAM1B,OACIP,eAAgBA","file":"../../scripts/layout/generic-nav-view.js","sourcesContent":["/** Real-time Communication feature **/\ndefine([\"mvc/ui/ui-modal\"], function(Modal) {\n var GenericNavView = Backbone.View.extend({\n initialize: function() {\n this.modal = null;\n },\n\n /** makes bootstrap modal and iframe inside it */\n makeModalIframe: function(e) {\n // make modal\n var host = window.Galaxy.config.communication_server_host,\n port = window.Galaxy.config.communication_server_port,\n username = escape(window.Galaxy.user.attributes.username),\n persistent_communication_rooms = escape(\n window.Galaxy.config.persistent_communication_rooms\n ),\n query_string =\n \"?username=\" +\n username +\n \"&persistent_communication_rooms=\" +\n persistent_communication_rooms,\n src = host + \":\" + port + query_string,\n $el_chat_modal_header = null,\n $el_chat_modal_body = null,\n iframe_template =\n '',\n header_template =\n '' +\n '' +\n '',\n frame_height = 350,\n frame_width = 600,\n class_names = \"ui-modal chat-modal\";\n\n // deletes the chat modal if already present and create one\n if ($(\".chat-modal\").length > 0) {\n $(\".chat-modal\").remove();\n }\n // creates a modal\n GenericNavView.modal = new Modal.View({\n body: iframe_template,\n height: frame_height,\n width: frame_width,\n closing_events: true,\n title_separator: false,\n cls: class_names\n });\n\n // shows modal\n GenericNavView.modal.show();\n $el_chat_modal_header = $(\".chat-modal .modal-header\");\n $el_chat_modal_body = $(\".chat-modal .modal-body\");\n // adjusts the css of bootstrap modal for chat\n $el_chat_modal_header.addClass(\"modal-header-body\");\n $el_chat_modal_body.addClass(\"modal-header-body\");\n $el_chat_modal_header.find(\"h4\").remove();\n $el_chat_modal_header.removeAttr(\"min-height padding border\");\n $el_chat_modal_header.append(header_template);\n // click event of the close button for chat\n $(\".close-modal\").click(function(e) {\n $(\".chat-modal\").css(\"display\", \"none\");\n });\n // click event of expand and compress icon\n $(\".expand-compress-modal\").click(function(e) {\n if ($(\".expand-compress-modal\").hasClass(\"fa-expand\")) {\n $(\".chat-modal .modal-dialog\").width(\"1000px\");\n $(\".chat-modal .modal-body\").height(\"575px\");\n $(\".expand-compress-modal\")\n .removeClass(\"fa-expand\")\n .addClass(\"fa-compress\");\n $(\".expand-compress-modal\").attr(\"title\", \"Minimize\");\n $(\".expand-compress-modal\").css(\"margin-left\", \"96.2%\");\n } else {\n $(\".chat-modal .modal-dialog\").width(frame_width + \"px\");\n $(\".chat-modal .modal-body\").height(frame_height + \"px\");\n $(\".expand-compress-modal\")\n .removeClass(\"fa-compress\")\n .addClass(\"fa-expand\");\n $(\".expand-compress-modal\").attr(\"title\", \"Maximize\");\n $(\".expand-compress-modal\").css(\"margin-left\", \"93.2%\");\n }\n });\n return this;\n },\n\n /**renders the chat icon as a nav item*/\n render: function() {\n var self = this,\n navItem = {};\n navItem = {\n id: \"show-chat-online\",\n icon: \"fa-comment-o\",\n tooltip: \"Chat online\",\n visible: false,\n onclick: self.makeModalIframe\n };\n return navItem;\n }\n });\n\n return {\n GenericNavView: GenericNavView\n };\n});\n"]} \ No newline at end of file diff --git a/static/maps/layout/masthead.js.map b/static/maps/layout/masthead.js.map index 08ed87be94c..8e036baf488 100644 --- a/static/maps/layout/masthead.js.map +++ b/static/maps/layout/masthead.js.map @@ -1 +1 @@ -{"version":3,"sources":["layout/masthead.js"],"names":["define","View","initialize","Utils","options","Scratchbook","QuotaMeter","$navbarBrandLink","extend","$navbarBrandImage","$navbarBrandTitle","this","$navbarTabs","$quoteMeter","_template","$","collection","Collection","self","append","on","Menu","callback","model","Tab","render","$el","frame","each","m","fetch","Galaxy","quotaMeter","UserQuotaMeter","preventDefault","user","el","q","e","text","target","closest","length","attr","hide","$download_link","get","html","brand","logo_url","logo_src"],"mappings":"aAAAA,QAEQ,cAMA,cACIC,qBACAC,4BAEI,SAAAC,EAAKC,EAALC,EAAAC,GAyGR,OACIL,KAxGSM,SAAAA,KAALC,QACAN,WAAKO,SAAAA,GACL,IAAKC,EAAAA,KACLC,KAAKC,QAAcR,EACnBO,KAAKE,WAAcF,KAAAG,aAJnBH,KAAKJ,iBAAmBI,KAAKI,EAAE,sBAM/BJ,KAAAF,kBAAAE,KAAAI,EAAA,uBACAJ,KAAKK,kBAAsBC,KAAAA,EAAAA,uBAC3BN,KAAKK,YACGL,KAAOI,EAAA,gBACPG,KAAKN,YAAYO,KACbJ,EAAA,0BAMPK,KAAGJ,WAAY,IAAAK,EAASC,WACrBJ,KAAKF,WACDM,GAAAA,MAAA,SAAAC,GADJL,EAAAN,YAAAO,OAIQf,IAAAA,EAdhBoB,KAAAD,MAAAA,IAAAE,SAAAC,OAiBOC,GAAP,QAAoBA,WAChBX,EAAYJ,YAAKI,UAThBI,GAAG,WAAY,SAASE,GAY7BJ,EAAAF,WAAAY,KAAA,SAAAC,GACAP,EAAAO,OAIYC,MAAKjB,KAAAA,SAIjBkB,OAAAJ,MAAAhB,KAAAgB,MAAA,IAAAtB,GACAW,WAAAL,KACiBK,aASJe,OAAAC,WAAArB,KAAAqB,WAAA,IAAA1B,EAAA2B,gBAKCC,MAAAA,OAAFC,KACHC,GAAAzB,KAAAE,cAQGwB,EAAAA,QAJJjB,GAAA,QAAA,SAAAkB,GAMIC,IAAAA,EAAaxB,EAAAuB,EAAAE,QAAAC,QAAA,eACb,GAAOF,EAAPG,SACH,IAAA3B,EAAA,uBAAA2B,QA5BT3B,EAAA,QAAAI,OA5CwBJ,EAAA,aAmDC4B,KAAK,KAAM,YAyBrBC,QAOVnC,EAAAA,uBAAmCL,KACxBqB,MAChBoB,EAAAF,KAAA,SA1BYL,EAAEJ,oBAgCVd,GAAA,eAAA,WAcP,IAAAmB,EAAA,GAnCW,GAtEhBrB,EAAAF,WAAAY,KAAA,SAAAL,GAiEoB,IAAIc,EA2CjBd,EAAAuB,IAAA,mBACG7C,EAAAA,IAAAA,iBAAAA,GADVoC,IAAAE,GAAAF,EAAA,OAtC6B,KAATE,EACA,OAAOA,KAKvBd,OAAQ,WASJ,OARAd,KAAKD,kBAAkBqC,KACnB,WACMpC,KAAKP,QAAQ4C,OAAS,KAAOrC,KAAKP,QAAQ4C,OACxC,KAEZrC,KAAKJ,iBAAiBoC,KAAK,OAAQhC,KAAKP,QAAQ6C,UAChDtC,KAAKF,kBAAkBkC,KAAK,MAAOhC,KAAKP,QAAQ8C,UAChDvC,KAAKqB,WAAWP,SACTd,MAIXG,UAAW,WACP,MACI","file":"../../scripts/layout/masthead.js","sourcesContent":["define(\n [\n \"utils/utils\",\n \"layout/menu\",\n \"layout/scratchbook\",\n \"mvc/user/user-quotameter\"\n ],\n function(Utils, Menu, Scratchbook, QuotaMeter) {\n /** Masthead **/\n var View = Backbone.View.extend({\n initialize: function(options) {\n var self = this;\n this.options = options;\n this.setElement(this._template());\n this.$navbarBrandLink = this.$(\".navbar-brand-link\");\n this.$navbarBrandImage = this.$(\".navbar-brand-image\");\n this.$navbarBrandTitle = this.$(\".navbar-brand-title\");\n this.$navbarTabs = this.$(\".navbar-tabs\");\n this.$quoteMeter = this.$(\".quota-meter-container\");\n\n // build tabs\n this.collection = new Menu.Collection();\n this.collection\n .on(\"add\", function(model) {\n self.$navbarTabs.append(\n new Menu.Tab({ model: model }).render().$el\n );\n })\n .on(\"reset\", function() {\n self.$navbarTabs.empty();\n })\n .on(\"dispatch\", function(callback) {\n self.collection.each(function(m) {\n callback(m);\n });\n })\n .fetch(this.options);\n\n // scratchbook\n Galaxy.frame = this.frame = new Scratchbook({\n collection: this.collection\n });\n\n // set up the quota meter (And fetch the current user data from trans)\n // add quota meter to masthead\n Galaxy.quotaMeter = this.quotaMeter = new QuotaMeter.UserQuotaMeter(\n {\n model: Galaxy.user,\n el: this.$quoteMeter\n }\n );\n\n // loop through beforeunload functions if the user attempts to unload the page\n $(window)\n .on(\"click\", function(e) {\n var $download_link = $(e.target).closest(\"a[download]\");\n if ($download_link.length == 1) {\n if ($(\"iframe[id=download]\").length === 0) {\n $(\"body\").append(\n $(\"
\"\n )\n });\n modal.show({ backdrop: true });\n }\n\n // ============================================================================\n return {\n Modal: Modal,\n hide_modal: hide_modal,\n show_modal: show_modal,\n show_message: show_message,\n show_in_overlay: show_in_overlay\n };\n});\n"]} \ No newline at end of file +{"version":3,"sources":["layout/modal.js"],"names":["define","jQuery","body","buttons","$","Modal","options","this","overlay","$dialog","dialog","$header","find","$footer","$overlay","$backdrop","$body","proxy","hide","extend","prototype","setContent","title","show","closeButton","$buttons","html","each","name","value","append","$extraButtons","extra_buttons","click","callback","is","css","backdrop","addClass","removeClass","width","modal","outerHeight","parseInt","fadeOut","children","remove","undefined","hide_modal","show_modal","init_fn","show_in_overlay","bind","show_message","unbind","url","height","scroll"],"mappings":"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","file":"../../scripts/layout/modal.js","sourcesContent":["define([\"jquery\"], function(jQuery) {\n \"use strict\";\n // ============================================================================\n //TODO: (the older version) unify with ui-modal (the newer version)\n var $ = jQuery;\n\n // Modal dialog boxes\n var Modal = function(options) {\n this.$overlay = options.overlay;\n this.$dialog = options.dialog;\n this.$header = this.$dialog.find(\".modal-header\");\n this.$body = this.$dialog.find(\".modal-body\");\n this.$footer = this.$dialog.find(\".modal-footer\");\n this.$backdrop = options.backdrop;\n // Close button\n this.$header.find(\".close\").on(\"click\", $.proxy(this.hide, this));\n };\n\n $.extend(Modal.prototype, {\n setContent: function(options) {\n this.$header.hide();\n // Title\n if (options.title) {\n this.$header.find(\".title\").html(options.title);\n this.$header.show();\n }\n if (options.closeButton) {\n this.$header.find(\".close\").show();\n this.$header.show();\n } else {\n this.$header.find(\".close\").hide();\n }\n // Buttons\n this.$footer.hide();\n var $buttons = this.$footer.find(\".buttons\").html(\"\");\n if (options.buttons) {\n $.each(options.buttons, function(name, value) {\n $buttons\n .append(\n $(\" \")\n .text(name)\n .click(value)\n )\n .append(\" \");\n });\n this.$footer.show();\n }\n var $extraButtons = this.$footer.find(\".extra_buttons\").html(\"\");\n if (options.extra_buttons) {\n $.each(options.extra_buttons, function(name, value) {\n $extraButtons\n .append(\n $(\"\")\n .text(name)\n .click(value)\n )\n .append(\" \");\n });\n this.$footer.show();\n }\n // Body\n var body = options.body;\n if (body == \"progress\") {\n body = $(\n \"
\"\n );\n }\n this.$body.html(body);\n },\n show: function(options, callback) {\n if (!this.$dialog.is(\":visible\")) {\n if (options.backdrop) {\n this.$backdrop.addClass(\"in\");\n } else {\n this.$backdrop.removeClass(\"in\");\n }\n this.$overlay.show();\n this.$dialog.show();\n this.$overlay.addClass(\"in\");\n // Fix min-width so that modal cannot shrink considerably if new content is loaded.\n this.$body.css(\"min-width\", this.$body.width());\n // Set max-height so that modal does not exceed window size and is in middle of page.\n // TODO: this could perhaps be handled better using CSS.\n this.$body.css(\n \"max-height\",\n $(window).height() -\n this.$footer.outerHeight() -\n this.$header.outerHeight() -\n parseInt(this.$dialog.css(\"padding-top\"), 10) -\n parseInt(this.$dialog.css(\"padding-bottom\"), 10)\n );\n }\n // Callback on init\n if (callback) {\n callback();\n }\n },\n hide: function() {\n var modal = this;\n modal.$dialog.fadeOut(function() {\n modal.$overlay.hide();\n modal.$backdrop.removeClass(\"in\");\n modal.$body.children().remove();\n // Clear min-width to allow for modal to take size of new body.\n modal.$body.css(\"min-width\", undefined);\n });\n }\n });\n\n var modal;\n\n $(function() {\n modal = new Modal({\n overlay: $(\"#top-modal\"),\n dialog: $(\"#top-modal-dialog\"),\n backdrop: $(\"#top-modal-backdrop\")\n });\n });\n\n // Backward compatibility\n function hide_modal() {\n modal.hide();\n }\n\n function show_modal(title, body, buttons, extra_buttons, init_fn) {\n modal.setContent({\n title: title,\n body: body,\n buttons: buttons,\n extra_buttons: extra_buttons\n });\n modal.show({ backdrop: true }, init_fn);\n }\n\n function show_message(title, body, buttons, extra_buttons, init_fn) {\n modal.setContent({\n title: title,\n body: body,\n buttons: buttons,\n extra_buttons: extra_buttons\n });\n modal.show({ backdrop: false }, init_fn);\n }\n\n function show_in_overlay(options) {\n var width = options.width || \"600\";\n var height = options.height || \"400\";\n var scroll = options.scroll || \"auto\";\n $(\"#overlay-background\").bind(\"click.overlay\", function() {\n hide_modal();\n $(\"#overlay-background\").unbind(\"click.overlay\");\n });\n modal.setContent({\n closeButton: true,\n title: \" \",\n body: $(\n \"
\"\n )\n });\n modal.show({ backdrop: true });\n }\n\n // ============================================================================\n return {\n Modal: Modal,\n hide_modal: hide_modal,\n show_modal: show_modal,\n show_message: show_message,\n show_in_overlay: show_in_overlay\n };\n});\n"]} \ No newline at end of file diff --git a/static/maps/layout/page.js.map b/static/maps/layout/page.js.map index 29619cd6c1b..06ce31dedb7 100644 --- a/static/maps/layout/page.js.map +++ b/static/maps/layout/page.js.map @@ -1 +1 @@ -{"version":3,"sources":["layout/page.js"],"names":["define","Masthead","Panel","Modal","Utils","View","Backbone","extend","el","className","_panelids","initialize","options","self","this","config","defaults","message_box_visible","message_box_content","message_box_class","show_inactivity_warning","inactivity_box_content","Galaxy","modal","display","view","title","setWindowTitle","allow_title_display","center","router","masthead","Router","CenterPanel","html","attr","$el","replaceWith","$","append","frame","$messagebox","$inactivebox","each","panels","_","panel_class_name","panel_id","charAt","panel_class","toUpperCase","slice","panel_instance","SidePanel","id","toString","render","pushState","history","start","root","renderInactivityBox","remove","renderPanels","_checkCommunicationServerOnline","renderMessageBox","addClass","level","removeClass","content","toggle","show","verificationLink","text","panel","css","_template","hide","$chat_icon_element","preferences","ajax","url","success","join","host","window","communication_server_host","port","communication_server_port","user","attributes","indexOf","communication_server","data","error"],"mappings":"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","file":"../../scripts/layout/page.js","sourcesContent":["define(\n [\"layout/masthead\", \"layout/panel\", \"mvc/ui/ui-modal\", \"utils/utils\"],\n function(Masthead, Panel, Modal, Utils) {\n var View = Backbone.View.extend({\n el: \"body\",\n className: \"full-content\",\n _panelids: [\"left\", \"right\"],\n\n initialize: function(options) {\n var self = this;\n this.config = _.defaults(options.config || {}, {\n message_box_visible: false,\n message_box_content: \"\",\n message_box_class: \"info\",\n show_inactivity_warning: false,\n inactivity_box_content: \"\"\n });\n\n // attach global objects, build mastheads\n Galaxy.modal = this.modal = new Modal.View();\n Galaxy.display = this.display = function(view) {\n if (view.title) {\n Utils.setWindowTitle(view.title);\n view.allow_title_display = false;\n } else {\n Utils.setWindowTitle();\n view.allow_title_display = true;\n }\n self.center.display(view);\n };\n Galaxy.router = this.router =\n options.Router && new options.Router(self, options);\n this.masthead = new Masthead.View(this.config);\n this.center = new Panel.CenterPanel();\n\n // build page template\n this.$el.attr(\"scroll\", \"no\");\n this.$el.html(this._template());\n this.$(\"#masthead\").replaceWith(this.masthead.$el);\n this.$(\"#center\").append(this.center.$el);\n this.$el.append(this.masthead.frame.$el);\n this.$el.append(this.modal.$el);\n this.$messagebox = this.$(\"#messagebox\");\n this.$inactivebox = this.$(\"#inactivebox\");\n\n // build panels\n this.panels = {};\n _.each(this._panelids, function(panel_id) {\n var panel_class_name =\n panel_id.charAt(0).toUpperCase() + panel_id.slice(1);\n var panel_class = options[panel_class_name];\n if (panel_class) {\n var panel_instance = new panel_class(self, options);\n self[panel_instance.toString()] = panel_instance;\n self.panels[panel_id] = new Panel.SidePanel({\n id: panel_id,\n el: self.$(\"#\" + panel_id),\n view: panel_instance\n });\n }\n });\n this.render();\n\n // start the router\n this.router &&\n Backbone.history.start({\n root: Galaxy.root,\n pushState: true\n });\n },\n\n render: function() {\n // TODO: Remove this line after select2 update\n $(\".select2-hidden-accessible\").remove();\n this.masthead.render();\n this.renderMessageBox();\n this.renderInactivityBox();\n this.renderPanels();\n this._checkCommunicationServerOnline();\n return this;\n },\n\n /** Render message box */\n renderMessageBox: function() {\n if (this.config.message_box_visible) {\n var content = this.config.message_box_content || \"\";\n var level = this.config.message_box_class || \"info\";\n this.$el.addClass(\"has-message-box\");\n this.$messagebox\n .attr(\"class\", \"panel-\" + level + \"-message\")\n .html(content)\n .toggle(!!content)\n .show();\n } else {\n this.$el.removeClass(\"has-message-box\");\n this.$messagebox.hide();\n }\n return this;\n },\n\n /** Render inactivity warning */\n renderInactivityBox: function() {\n if (this.config.show_inactivity_warning) {\n var content = this.config.inactivity_box_content || \"\";\n var verificationLink = $(\"\")\n .attr(\"href\", Galaxy.root + \"user/resend_verification\")\n .text(\"Resend verification\");\n this.$el.addClass(\"has-inactivity-box\");\n this.$inactivebox\n .html(content + \" \")\n .append(verificationLink)\n .toggle(!!content)\n .show();\n } else {\n this.$el.removeClass(\"has-inactivity-box\");\n this.$inactivebox.hide();\n }\n return this;\n },\n\n /** Render panels */\n renderPanels: function() {\n var self = this;\n _.each(this._panelids, function(panel_id) {\n var panel = self.panels[panel_id];\n if (panel) {\n panel.render();\n } else {\n self.$(\"#center\").css(panel_id, 0);\n self.$(\"#\" + panel_id).hide();\n }\n });\n return this;\n },\n\n /** body template */\n _template: function() {\n return [\n '
',\n '
',\n '
',\n '
',\n '
',\n '
',\n '
',\n '
',\n \"
\",\n '
'\n ].join(\"\");\n },\n\n toString: function() {\n return \"PageLayoutView\";\n },\n\n /** Check if the communication server is online and show the icon otherwise hide the icon */\n _checkCommunicationServerOnline: function() {\n var host = window.Galaxy.config.communication_server_host,\n port = window.Galaxy.config.communication_server_port,\n preferences = window.Galaxy.user.attributes.preferences,\n $chat_icon_element = $(\"#show-chat-online\");\n /** Check if the user has deactivated the communication in it's personal settings */\n if (\n preferences &&\n [\"1\", \"true\"].indexOf(preferences.communication_server) !=\n -1\n ) {\n // See if the configured communication server is available\n $.ajax({\n url: host + \":\" + port\n })\n .success(function(data) {\n // enable communication only when a user is logged in\n if (window.Galaxy.user.id !== null) {\n if (\n $chat_icon_element.css(\"visibility\") ===\n \"hidden\"\n ) {\n $chat_icon_element.css(\n \"visibility\",\n \"visible\"\n );\n }\n }\n })\n .error(function(data) {\n // hide the communication icon if the communication server is not available\n $chat_icon_element.css(\"visibility\", \"hidden\");\n });\n } else {\n $chat_icon_element.css(\"visibility\", \"hidden\");\n }\n }\n });\n\n return { View: View };\n }\n);\n"]} \ No newline at end of file +{"version":3,"sources":["layout/page.js"],"names":["define","Masthead","Panel","Modal","Utils","View","Backbone","extend","el","className","initialize","options","this","self","_","defaults","config","message_box_visible","message_box_content","message_box_class","show_inactivity_warning","Galaxy","modal","display","view","title","setWindowTitle","center","router","Router","masthead","CenterPanel","$el","attr","html","_template","$","replaceWith","append","frame","$messagebox","$inactivebox","panels","each","_panelids","panel_id","panel_class_name","panel_class","slice","panel_instance","toString","SidePanel","id","render","root","pushState","start","remove","renderInactivityBox","renderPanels","_checkCommunicationServerOnline","renderMessageBox","content","level","addClass","hide","toggle","show","removeClass","inactivity_box_content","verificationLink","text","panel","css","preferences","url","$chat_icon_element","join","host","window","communication_server_host","port","communication_server_port","user","attributes","indexOf","communication_server","ajax","success","data","error"],"mappings":"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","file":"../../scripts/layout/page.js","sourcesContent":["define(\n [\"layout/masthead\", \"layout/panel\", \"mvc/ui/ui-modal\", \"utils/utils\"],\n function(Masthead, Panel, Modal, Utils) {\n var View = Backbone.View.extend({\n el: \"body\",\n className: \"full-content\",\n _panelids: [\"left\", \"right\"],\n\n initialize: function(options) {\n var self = this;\n this.config = _.defaults(options.config || {}, {\n message_box_visible: false,\n message_box_content: \"\",\n message_box_class: \"info\",\n show_inactivity_warning: false,\n inactivity_box_content: \"\"\n });\n\n // attach global objects, build mastheads\n Galaxy.modal = this.modal = new Modal.View();\n Galaxy.display = this.display = function(view) {\n if (view.title) {\n Utils.setWindowTitle(view.title);\n view.allow_title_display = false;\n } else {\n Utils.setWindowTitle();\n view.allow_title_display = true;\n }\n self.center.display(view);\n };\n Galaxy.router = this.router =\n options.Router && new options.Router(self, options);\n this.masthead = new Masthead.View(this.config);\n this.center = new Panel.CenterPanel();\n\n // build page template\n this.$el.attr(\"scroll\", \"no\");\n this.$el.html(this._template());\n this.$(\"#masthead\").replaceWith(this.masthead.$el);\n this.$(\"#center\").append(this.center.$el);\n this.$el.append(this.masthead.frame.$el);\n this.$el.append(this.modal.$el);\n this.$messagebox = this.$(\"#messagebox\");\n this.$inactivebox = this.$(\"#inactivebox\");\n\n // build panels\n this.panels = {};\n _.each(this._panelids, function(panel_id) {\n var panel_class_name =\n panel_id.charAt(0).toUpperCase() + panel_id.slice(1);\n var panel_class = options[panel_class_name];\n if (panel_class) {\n var panel_instance = new panel_class(self, options);\n self[panel_instance.toString()] = panel_instance;\n self.panels[panel_id] = new Panel.SidePanel({\n id: panel_id,\n el: self.$(\"#\" + panel_id),\n view: panel_instance\n });\n }\n });\n this.render();\n\n // start the router\n this.router &&\n Backbone.history.start({\n root: Galaxy.root,\n pushState: true\n });\n },\n\n render: function() {\n // TODO: Remove this line after select2 update\n $(\".select2-hidden-accessible\").remove();\n this.masthead.render();\n this.renderMessageBox();\n this.renderInactivityBox();\n this.renderPanels();\n this._checkCommunicationServerOnline();\n return this;\n },\n\n /** Render message box */\n renderMessageBox: function() {\n if (this.config.message_box_visible) {\n var content = this.config.message_box_content || \"\";\n var level = this.config.message_box_class || \"info\";\n this.$el.addClass(\"has-message-box\");\n this.$messagebox\n .attr(\"class\", \"panel-\" + level + \"-message\")\n .html(content)\n .toggle(!!content)\n .show();\n } else {\n this.$el.removeClass(\"has-message-box\");\n this.$messagebox.hide();\n }\n return this;\n },\n\n /** Render inactivity warning */\n renderInactivityBox: function() {\n if (this.config.show_inactivity_warning) {\n var content = this.config.inactivity_box_content || \"\";\n var verificationLink = $(\"\")\n .attr(\"href\", Galaxy.root + \"user/resend_verification\")\n .text(\"Resend verification\");\n this.$el.addClass(\"has-inactivity-box\");\n this.$inactivebox\n .html(content + \" \")\n .append(verificationLink)\n .toggle(!!content)\n .show();\n } else {\n this.$el.removeClass(\"has-inactivity-box\");\n this.$inactivebox.hide();\n }\n return this;\n },\n\n /** Render panels */\n renderPanels: function() {\n var self = this;\n _.each(this._panelids, function(panel_id) {\n var panel = self.panels[panel_id];\n if (panel) {\n panel.render();\n } else {\n self.$(\"#center\").css(panel_id, 0);\n self.$(\"#\" + panel_id).hide();\n }\n });\n return this;\n },\n\n /** body template */\n _template: function() {\n return [\n '
',\n '
',\n '
',\n '
',\n '
',\n '
',\n '
',\n '
',\n \"
\",\n '
'\n ].join(\"\");\n },\n\n toString: function() {\n return \"PageLayoutView\";\n },\n\n /** Check if the communication server is online and show the icon otherwise hide the icon */\n _checkCommunicationServerOnline: function() {\n var host = window.Galaxy.config.communication_server_host,\n port = window.Galaxy.config.communication_server_port,\n preferences = window.Galaxy.user.attributes.preferences,\n $chat_icon_element = $(\"#show-chat-online\");\n /** Check if the user has deactivated the communication in it's personal settings */\n if (\n preferences &&\n [\"1\", \"true\"].indexOf(preferences.communication_server) !=\n -1\n ) {\n // See if the configured communication server is available\n $.ajax({\n url: host + \":\" + port\n })\n .success(function(data) {\n // enable communication only when a user is logged in\n if (window.Galaxy.user.id !== null) {\n if (\n $chat_icon_element.css(\"visibility\") ===\n \"hidden\"\n ) {\n $chat_icon_element.css(\n \"visibility\",\n \"visible\"\n );\n }\n }\n })\n .error(function(data) {\n // hide the communication icon if the communication server is not available\n $chat_icon_element.css(\"visibility\", \"hidden\");\n });\n } else {\n $chat_icon_element.css(\"visibility\", \"hidden\");\n }\n }\n });\n\n return { View: View };\n }\n);\n"]} \ No newline at end of file diff --git a/static/maps/layout/panel.js.map b/static/maps/layout/panel.js.map index a75d9bc9a29..3286879fe7d 100644 --- a/static/maps/layout/panel.js.map +++ b/static/maps/layout/panel.js.map @@ -1 +1 @@ -{"version":3,"sources":["layout/panel.js"],"names":["define","$","Backbone","MIN_PANEL_WIDTH","MAX_PANEL_WIDTH","SidePanel","view","options","initialize","hidden","this","saved_size","hiddenByTool","$center","$el","siblings","$toggleButton","render","panel","components","html","each","buttons","model","attributes","self","_templatePanel","append","_","button","addClass","cls","escape","title","_templateHeader","_templateFooter","join","data","events","_templateBody","_mousedownDragHandler","prevX","oldWidth","newWidth","mousedown .unified-panel-footer > .drag","ev","css","e","pageX","width","draggingLeft","delta","Math","min","animation","whichSide","id","show","on","move","one","off","resize","animate","newSize","toggle","handle_minwidth_hint","space","hint","hide","force_panel","op","toString","RightPanel","CenterPanel","$panel","_iframeChangeHandler","iframe","currentTarget","location","Galaxy","search","hash","LeftPanel","extend","contentWindow","onbeforeunload","View","template","$frame","bind","host","trigger","fullpath","pathname","display","message","confirm","undefined","attr","empty","scrollTop"],"mappings":"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","file":"../../scripts/layout/panel.js","sourcesContent":["define([\"jquery\", \"libs/underscore\", \"libs/backbone\"], function(\n $,\n _,\n Backbone\n) {\n \"use strict\";\n\n var MIN_PANEL_WIDTH = 160,\n MAX_PANEL_WIDTH = 800;\n\n /** View for left/right panels used by Page view */\n var SidePanel = Backbone.View.extend({\n initialize: function(options) {\n this.view = options.view;\n this.hidden = false;\n this.saved_size = null;\n this.hiddenByTool = false;\n },\n\n $center: function() {\n return this.$el.siblings(\"#center\");\n },\n\n $toggleButton: function() {\n return this.$(\".unified-panel-footer > .panel-collapse\");\n },\n\n render: function() {\n var self = this;\n var panel = this.view;\n var components = this.view.model.attributes || {};\n this.$el.html(this._templatePanel(this.id));\n _.each(components.buttons, function(button) {\n self.$(\".panel-header-buttons\").append(button.$el);\n });\n this.$el.addClass(components.cls);\n this.$(\".panel-header-text\").html(_.escape(components.title));\n this.$(\".unified-panel-body\").append(panel.$el);\n panel.render();\n },\n\n /** panel dom template. id is 'right' or 'left' */\n _templatePanel: function() {\n return [\n this._templateHeader(),\n this._templateBody(),\n this._templateFooter()\n ].join(\"\");\n },\n\n /** panel dom template. id is 'right' or 'left' */\n _templateHeader: function(data) {\n return [\n '
',\n '
',\n '
',\n '
',\n \"
\",\n \"
\"\n ].join(\"\");\n },\n\n /** panel dom template. id is 'right' or 'left' */\n _templateBody: function(data) {\n return '
';\n },\n\n /** panel dom template. id is 'right' or 'left' */\n _templateFooter: function(data) {\n return [\n '
',\n '
',\n '
',\n \"
\"\n ].join(\"\");\n },\n\n events: {\n \"mousedown .unified-panel-footer > .drag\": \"_mousedownDragHandler\",\n \"click .unified-panel-footer > .panel-collapse\": \"toggle\"\n },\n\n _mousedownDragHandler: function(ev) {\n var self = this,\n draggingLeft = this.id === \"left\",\n prevX = ev.pageX;\n\n function move(e) {\n var delta = e.pageX - prevX;\n prevX = e.pageX;\n var oldWidth = self.$el.width(),\n newWidth = draggingLeft\n ? oldWidth + delta\n : oldWidth - delta;\n // Limit range\n newWidth = Math.min(\n MAX_PANEL_WIDTH,\n Math.max(MIN_PANEL_WIDTH, newWidth)\n );\n self.resize(newWidth);\n }\n\n // this is a page wide overlay that assists in capturing the move and release of the mouse\n // if not provided, progress and end wouldn't fire if the mouse moved out of the drag button area\n $(\"#dd-helper\")\n .show()\n .on(\"mousemove\", move)\n .one(\"mouseup\", function(e) {\n $(this)\n .hide()\n .off(\"mousemove\", move);\n });\n },\n\n // TODO: the following three could be simplified I think\n // if panel is 'right' (this.id), move center right newSize number of pixels\n resize: function(newSize) {\n this.$el.css(\"width\", newSize);\n this.$center().css(this.id, newSize);\n return this;\n },\n\n show: function() {\n if (!this.hidden) {\n return;\n }\n var self = this,\n animation = {},\n whichSide = this.id;\n animation[whichSide] = 0;\n self.$el\n .css(whichSide, -this.saved_size)\n .show()\n .animate(animation, \"fast\", function() {\n self.resize(self.saved_size);\n });\n self.hidden = false;\n self.$toggleButton().removeClass(\"hidden\");\n return this;\n },\n\n hide: function() {\n if (this.hidden) {\n return;\n }\n var animation = {},\n whichSide = this.id;\n this.saved_size = this.$el.width();\n animation[whichSide] = -this.saved_size;\n this.$el.animate(animation, \"fast\");\n this.$center().css(whichSide, 0);\n this.hidden = true;\n this.$toggleButton().addClass(\"hidden\");\n return this;\n },\n\n toggle: function(ev) {\n this.hidden ? this.show() : this.hide();\n this.hiddenByTool = false;\n return this;\n },\n\n // ..............................................................\n //TODO: only used in message.mako?\n /** */\n handle_minwidth_hint: function(hint) {\n var space =\n this.$center().width() - (this.hidden ? this.saved_size : 0);\n if (space < hint) {\n if (!this.hidden) {\n this.toggle();\n this.hiddenByTool = true;\n }\n } else {\n if (this.hiddenByTool) {\n this.toggle();\n this.hiddenByTool = false;\n }\n }\n return self;\n },\n\n /** */\n force_panel: function(op) {\n if (op == \"show\") {\n return this.show();\n }\n if (op == \"hide\") {\n return this.hide();\n }\n return self;\n },\n\n toString: function() {\n return \"SidePanel(\" + this.id + \")\";\n }\n });\n\n // ----------------------------------------------------------------------------\n // TODO: side should be defined by page - not here\n var LeftPanel = SidePanel.extend({\n id: \"left\"\n });\n\n var RightPanel = SidePanel.extend({\n id: \"right\"\n });\n\n /** Center panel with the ability to switch between iframe and view */\n var CenterPanel = Backbone.View.extend({\n initialize: function(options) {\n this.setElement($(this.template()));\n this.$frame = this.$(\".center-frame\");\n this.$panel = this.$(\".center-panel\");\n this.$frame.on(\"load\", _.bind(this._iframeChangeHandler, this));\n },\n\n /** Display iframe if its target url changes, hide center panel */\n _iframeChangeHandler: function(ev) {\n var iframe = ev.currentTarget;\n var location =\n iframe.contentWindow && iframe.contentWindow.location;\n if (location && location.host) {\n $(iframe).show();\n this.$panel.empty().hide();\n Galaxy.trigger(\"center-frame:load\", {\n fullpath:\n location.pathname + location.search + location.hash,\n pathname: location.pathname,\n search: location.search,\n hash: location.hash\n });\n }\n },\n\n /** Display a view in the center panel, hide iframe */\n display: function(view) {\n var contentWindow = this.$frame[0].contentWindow || {};\n var message =\n contentWindow.onbeforeunload && contentWindow.onbeforeunload();\n if (!message || confirm(message)) {\n contentWindow.onbeforeunload = undefined;\n this.$frame.attr(\"src\", \"about:blank\").hide();\n this.$panel\n .empty()\n .scrollTop(0)\n .append(view.$el)\n .show();\n Galaxy.trigger(\"center-panel:load\", view);\n }\n },\n\n template: function() {\n return (\n '
' +\n '';return o(".chat-modal").length>0&&o(".chat-modal").remove(),e.modal=new t.View({body:d,height:350,width:600,closing_events:!0,title_separator:!1,cls:"ui-modal chat-modal"}),e.modal.show(),c=o(".chat-modal .modal-header"),h=o(".chat-modal .modal-body"),c.addClass("modal-header-body"),h.addClass("modal-header-body"),c.find("h4").remove(),c.removeAttr("min-height padding border"),c.append(''),o(".close-modal").click(function(t){o(".chat-modal").css("display","none")}),o(".expand-compress-modal").click(function(t){o(".expand-compress-modal").hasClass("fa-expand")?(o(".chat-modal .modal-dialog").width("1000px"),o(".chat-modal .modal-body").height("575px"),o(".expand-compress-modal").removeClass("fa-expand").addClass("fa-compress"),o(".expand-compress-modal").attr("title","Minimize"),o(".expand-compress-modal").css("margin-left","96.2%")):(o(".chat-modal .modal-dialog").width("600px"),o(".chat-modal .modal-body").height("350px"),o(".expand-compress-modal").removeClass("fa-compress").addClass("fa-expand"),o(".expand-compress-modal").attr("title","Maximize"),o(".expand-compress-modal").css("margin-left","93.2%"))}),this},render:function(){var t=this;return{id:"show-chat-online",icon:"fa-comment-o",tooltip:"Chat online",visible:!1,onclick:t.makeModalIframe}}});return{GenericNavView:e}}.apply(e,s))&&(t.exports=r)}).call(e,i(1),i(0))},function(t,e,i){"use strict";(function(n,o,s){var r,a;r=[i(61)],void 0!==(a=function(t){return n.View.extend({initialize:function(e){var i=this;e=e||{},this.frames=new t.View({visible:!1}),this.setElement(this.frames.$el),this.buttonActive=e.collection.add({id:"enable-scratchbook",icon:"fa-th",tooltip:_l("Enable/Disable Scratchbook"),onclick:function(){i.active=!i.active,i.buttonActive.set({toggle:i.active,show_note:i.active,note_cls:i.active&&"fa fa-check"}),!i.active&&i.frames.hide()},onbeforeunload:function(){if(i.frames.length()>0)return"You opened "+i.frames.length()+" frame(s) which will be lost."}}),this.buttonLoad=e.collection.add({id:"show-scratchbook",icon:"fa-eye",tooltip:_l("Show/Hide Scratchbook"),show_note:!0,visible:!1,onclick:function(t){i.frames.visible?i.frames.hide():i.frames.show()}}),this.frames.on("add remove",function(){this.visible&&0==this.length()&&this.hide(),i.buttonLoad.set({note:this.length(),visible:this.length()>0})}).on("show hide ",function(){i.buttonLoad.set({toggle:this.visible,icon:this.visible&&"fa-eye"||"fa-eye-slash"})}),this.history_cache={}},addDataset:function(t){var e=this,i=null;if(Galaxy&&Galaxy.currHistoryPanel){var n=Galaxy.currHistoryPanel.collection.historyId;this.history_cache[n]={name:Galaxy.currHistoryPanel.model.get("name"),dataset_ids:[]},Galaxy.currHistoryPanel.collection.each(function(t){!t.get("deleted")&&t.get("visible")&&e.history_cache[n].dataset_ids.push(t.get("id"))})}var s=function(t,i){if(t){var n=e.history_cache[t.get("history_id")];if(n&&n.dataset_ids){var o=n.dataset_ids,s=o.indexOf(t.get("id"));if(-1!==s&&s+i>=0&&s+i=this.options.errorAtPercent},_render_quota:function(){var t=this.model.toJSON(),e=t.quota_percent,i=o(this._templateQuotaMeter(t)),n=i.find(".progress-bar");return this.isOverQuota()?(n.attr("class","progress-bar progress-bar-danger"),i.find(".quota-meter-text").css("color","white"),this.trigger("quota:over",t)):e>=this.options.warnAtPercent?(n.attr("class","progress-bar progress-bar-warning"),this.trigger("quota:under quota:under:approaching",t)):(n.attr("class","progress-bar progress-bar-success"),this.trigger("quota:under quota:under:ok",t)),i},_render_usage:function(){var t=o(this._templateUsage(this.model.toJSON()));return this.log(this+".rendering usage:",t),t},render:function(){var t=null;return this.log(this+".model.quota_percent:",this.model.get("quota_percent")),t=null===this.model.get("quota_percent")||void 0===this.model.get("quota_percent")?this._render_usage():this._render_quota(),this.$el.html(t),this.$el.find(".quota-meter-text").tooltip(),this},_templateQuotaMeter:function(t){return['
','
','
':">",(0,u.default)("Using")," ",t.quota_percent,"%","
","
"].join("")},_templateUsage:function(t){return['
','
',t.nice_total_disk_usage?(0,u.default)("Using ")+t.nice_total_disk_usage:"","
","
"].join("")},toString:function(){return"UserQuotaMeter("+this.model+")"}});e.default={UserQuotaMeter:c}}).call(e,i(1),i(2),i(0))}]); +!function(t){"use strict";t.fn.autocomplete_verheul=function(e){var i;arguments.length>1?(i=e,e=arguments[1],e.url=i):"string"==typeof e&&(i=e,e={url:i});var n=t.extend({},t.fn.autocomplete_verheul.defaults,e);return this.each(function(){var e=t(this);e.data("autocompleter",new t.Autocompleter(e,t.meta?t.extend({},n,e.data()):n))})},t.fn.autocomplete_verheul.defaults={inputClass:"acInput",loadingClass:"acLoading",resultsClass:"acResults",selectClass:"acSelect",queryParamName:"q",extraParams:{},remoteDataType:!1,lineSeparator:"\n",cellSeparator:"|",minChars:2,maxItemsToShow:10,delay:400,useCache:!0,maxCacheLength:10,matchSubset:!0,matchCase:!1,matchInside:!0,mustMatch:!1,selectFirst:!1,selectOnly:!1,showResult:null,preventDefaultReturn:1,preventDefaultTab:0,autoFill:!1,filterResults:!0,filter:!0,sortResults:!0,sortFunction:null,onItemSelect:null,onNoMatch:null,onFinish:null,matchStringConverter:null,beforeUseConverter:null,autoWidth:"min-width",useDelimiter:!1,delimiterChar:",",delimiterKeyCode:188,processData:null,onError:null,enabled:!0};var e=function(e){var i,n,o=typeof e;return"string"===o?(i=e,n={}):t.isArray(e)?(i=e[0],n=e.slice(1)):"object"===o&&(i=e.value,n=e.data),i=String(i),"object"!=typeof n&&(n={}),{value:i,data:n}},i=function(t,e,i){var n=parseInt(t,10);return i=i||{},(isNaN(n)||i.min&&ne?1:t
").hide().addClass(this.options.resultsClass).css({position:"absolute"}),t("body").append(this.dom.$results),e.keydown(function(t){switch(o.lastKeyPressed_=t.keyCode,o.lastKeyPressed_){case o.options.delimiterKeyCode:o.options.useDelimiter&&o.active_&&o.selectCurrent();break;case 35:case 36:case 16:case 17:case 18:case 37:case 39:break;case 38:return t.preventDefault(),o.active_?o.focusPrev():o.activate(),!1;case 40:return t.preventDefault(),o.active_?o.focusNext():o.activate(),!1;case 9:if(o.active_&&(o.selectCurrent(),o.options.preventDefaultTab))return t.preventDefault(),!1;if(2===o.options.preventDefaultTab)return t.preventDefault(),!1;break;case 13:if(o.active_&&(o.selectCurrent(),o.options.preventDefaultReturn))return t.preventDefault(),!1;if(2===o.options.preventDefaultReturn)return t.preventDefault(),!1;break;case 27:if(o.active_)return t.preventDefault(),o.deactivate(!0),!1;break;default:o.activate()}}),e.on("paste",function(){o.activate()});var s=function(){o.deactivate(!0)};e.blur(function(){o.finishOnBlur_&&(o.finishTimeout_=setTimeout(s,200))}),e.parents("form").on("submit",s)},t.Autocompleter.prototype.position=function(){var e=this.dom.$elem.offset(),i=this.dom.$results.outerHeight(),n=t(window).outerHeight(),o=e.top+this.dom.$elem.outerHeight(),s=o+i,r={top:o,left:e.left};if(s>n){var a=e.top-i;a>=0&&(r.top=a)}this.dom.$results.css(r)},t.Autocompleter.prototype.cacheRead=function(t){var e,i,n,o,s;if(this.options.useCache)for(t=String(t),e=t.length,i=this.options.matchSubset?1:e;i<=e;){for(o=this.options.matchInside?e-i:0,s=0;s<=o;){if(n=t.substr(0,i),void 0!==this.cacheData_[n])return this.cacheData_[n];s++}i++}return!1},t.Autocompleter.prototype.cacheWrite=function(t,e){return!!this.options.useCache&&(this.cacheLength_>=this.options.maxCacheLength&&this.cacheFlush(),t=String(t),void 0!==this.cacheData_[t]&&this.cacheLength_++,this.cacheData_[t]=e,this.cacheData_[t])},t.Autocompleter.prototype.cacheFlush=function(){this.cacheData_={},this.cacheLength_=0},t.Autocompleter.prototype.callHook=function(e,i){var n=this.options[e];return!(!n||!t.isFunction(n))&&n(i,this)},t.Autocompleter.prototype.activate=function(){if(this.options.enabled){var t=this;this.keyTimeout_&&clearTimeout(this.keyTimeout_),this.keyTimeout_=setTimeout(function(){t.activateNow()},this.options.delay)}},t.Autocompleter.prototype.activateNow=function(){var t=this.beforeUseConverter(this.dom.$elem.val());t!==this.lastProcessedValue_&&t!==this.lastSelectedValue_&&this.fetchData(t)},t.Autocompleter.prototype.fetchData=function(t){var e=this,i=function(t,i){e.options.processData&&(t=e.options.processData(t)),e.showResults(e.filterResults(t,i),i)};this.lastProcessedValue_=t,t.length-1:0===o}return!0},t.Autocompleter.prototype.filterResult=function(e,i){return!1===this.options.filter||(t.isFunction(this.options.filter)?this.options.filter(e,i):this.defaultFilter(e,i))},t.Autocompleter.prototype.filterResults=function(t,i){var n,o,s=[];for(n=0;n0&&this.options.maxItemsToShow");return n.html(this.showResult(e.value,e.data)),n.data({value:e.value,data:e.data}).click(function(){i.selectItem(n)}).mousedown(i.disableFinishOnBlur).mouseup(i.enableFinishOnBlur),n},t.Autocompleter.prototype.getItems=function(){return t(">ul>li",this.dom.$results)},t.Autocompleter.prototype.showResults=function(e,i){var n,o,s,r,a=e.length,l=this,u=t("
    "),c=!1,h=!1;if(a){for(n=0;n

    ").text(e).html()},t.Autocompleter.prototype.autoFill=function(t,e){var i,n,o,s;if(this.options.autoFill&&8!==this.lastKeyPressed_&&(i=String(t).toLowerCase(),n=String(e).toLowerCase(),o=t.length,s=e.length,i.substr(0,s)===n)){var r=this.getDelimiterOffsets(),a=r.start?" ":"";this.setValue(a+t);var l=s+r.start+a.length,u=o+r.start+a.length;return this.selectRange(l,u),!0}return!1},t.Autocompleter.prototype.focusNext=function(){this.focusMove(1)},t.Autocompleter.prototype.focusPrev=function(){this.focusMove(-1)},t.Autocompleter.prototype.focusMove=function(e){var n=this.getItems();if(e=i(e,0))for(var o=0;o=n.length&&(e=n.length-1),i=t(n[e])):i=t(e),i&&i.addClass(this.selectClass_).addClass(this.options.selectClass))},t.Autocompleter.prototype.selectCurrent=function(){var e=t("li."+this.selectClass_,this.dom.$results);1===e.length?this.selectItem(e):this.deactivate(!1)},t.Autocompleter.prototype.selectItem=function(t){var e=t.data("value"),i=t.data("data"),n=this.displayValue(e,i),o=this.beforeUseConverter(n);this.lastProcessedValue_=o,this.lastSelectedValue_=o;var s=this.getDelimiterOffsets(),r=this.options.delimiterChar,a=this.dom.$elem,l=0;this.options.useDelimiter&&(a.val().substring(s.start-1,s.start)==r&&" "!=r&&(n=" "+n),a.val().substring(s.end,s.end+1)!=r&&this.lastKeyPressed_!=this.options.delimiterKeyCode?n+=r:l=1),this.setValue(n),this.setCaret(s.start+n.length+l),this.callHook("onItemSelect",{value:e,data:i}),this.deactivate(!0),a.focus()},t.Autocompleter.prototype.displayValue=function(e,i){return t.isFunction(this.options.displayValue)?this.options.displayValue(e,i):e},t.Autocompleter.prototype.hideResults=function(){this.dom.$results.hide()},t.Autocompleter.prototype.deactivate=function(t){this.finishTimeout_&&clearTimeout(this.finishTimeout_),this.keyTimeout_&&clearTimeout(this.keyTimeout_),t&&(this.lastProcessedValue_!==this.lastSelectedValue_&&(this.options.mustMatch&&this.setValue(""),this.callHook("onNoMatch")),this.active_&&this.callHook("onFinish"),this.lastKeyPressed_=null,this.lastProcessedValue_=null,this.lastSelectedValue_=null,this.active_=!1),this.hideResults()},t.Autocompleter.prototype.selectRange=function(t,e){var i=this.dom.$elem.get(0);if(i.setSelectionRange)i.focus(),i.setSelectionRange(t,e);else if(i.createTextRange){var n=i.createTextRange();n.collapse(!0),n.moveEnd("character",e),n.moveStart("character",t),n.select()}},t.Autocompleter.prototype.setCaret=function(t){this.selectRange(t,t)},t.Autocompleter.prototype.getCaret=function(){var t,e,i,n,o,s,r=this.dom.$elem,a=r[0];return a.createTextRange?(e=document.selection,"textarea"!=a.tagName.toLowerCase()?(t=r.val(),i=e.createRange().duplicate(),i.moveEnd("character",t.length),n=""===i.text?t.length:t.lastIndexOf(i.text),i=e.createRange().duplicate(),i.moveStart("character",-t.length),o=i.text.length):(i=e.createRange(),s=i.duplicate(),s.moveToElementText(a),s.setEndPoint("EndToEnd",i),n=s.text.length-i.text.length,o=n+i.text.length)):(n=r[0].selectionStart,o=r[0].selectionEnd),{start:n,end:o}},t.Autocompleter.prototype.setValue=function(t){if(this.options.useDelimiter){var e=this.dom.$elem.val(),i=this.getDelimiterOffsets();t=e.substring(0,i.start)+t+e.substring(i.end)}this.dom.$elem.val(t)},t.Autocompleter.prototype.getValue=function(t){if(this.options.useDelimiter){var e=this.getDelimiterOffsets();return t.substring(e.start,e.end).trim()}return t},t.Autocompleter.prototype.getDelimiterOffsets=function(){var t=this.dom.$elem.val();if(this.options.useDelimiter){var e=t.substring(0,this.getCaret().start),i=e.lastIndexOf(this.options.delimiterChar)+1,n=t.substring(this.getCaret().start),o=n.indexOf(this.options.delimiterChar);-1==o&&(o=t.length),o+=this.getCaret().start}else i=0,o=t.length;return{start:i,end:o}}}(t)}).call(e,i(0))},function(t,e,i){var n,o,s;!function(r,a,l){!function(r){o=[i(0)],n=r,void 0!==(s="function"==typeof n?n.apply(e,o):n)&&(t.exports=s)}(function(t){"use strict";var e,i,n,o,s,l,u,c,h,d,p,f,g,m,v,y,b,w,_,x,C,S,k,T,E,A,D,M,O,P,j,R={},N=0;e=function(){return{common:{type:"line",lineColor:"#00f",fillColor:"#cdf",defaultPixelsPerValue:3,width:"auto",height:"auto",composite:!1,tagValuesAttribute:"values",tagOptionsPrefix:"spark",enableTagOptions:!1,enableHighlight:!0,highlightLighten:1.4,tooltipSkipNull:!0,tooltipPrefix:"",tooltipSuffix:"",disableHiddenCheck:!1,numberFormatter:!1,numberDigitGroupCount:3,numberDigitGroupSep:",",numberDecimalMark:".",disableTooltips:!1,disableInteraction:!1},line:{spotColor:"#f80",highlightSpotColor:"#5f5",highlightLineColor:"#f22",spotRadius:1.5,minSpotColor:"#f80",maxSpotColor:"#f80",lineWidth:1,normalRangeMin:void 0,normalRangeMax:void 0,normalRangeColor:"#ccc",drawNormalOnTop:!1,chartRangeMin:void 0,chartRangeMax:void 0,chartRangeMinX:void 0,chartRangeMaxX:void 0,tooltipFormat:new n('● {{prefix}}{{y}}{{suffix}}')},bar:{barColor:"#3366cc",negBarColor:"#f44",stackedBarColor:["#3366cc","#dc3912","#ff9900","#109618","#66aa00","#dd4477","#0099c6","#990099"],zeroColor:void 0,nullColor:void 0,zeroAxis:!0,barWidth:4,barSpacing:1,chartRangeMax:void 0,chartRangeMin:void 0,chartRangeClip:!1,colorMap:void 0,tooltipFormat:new n('● {{prefix}}{{value}}{{suffix}}')},tristate:{barWidth:4,barSpacing:1,posBarColor:"#6f6",negBarColor:"#f44",zeroBarColor:"#999",colorMap:{},tooltipFormat:new n('● {{value:map}}'),tooltipValueLookups:{map:{"-1":"Loss",0:"Draw",1:"Win"}}},discrete:{lineHeight:"auto",thresholdColor:void 0,thresholdValue:0,chartRangeMax:void 0,chartRangeMin:void 0,chartRangeClip:!1,tooltipFormat:new n("{{prefix}}{{value}}{{suffix}}")},bullet:{targetColor:"#f33",targetWidth:3,performanceColor:"#33f",rangeColors:["#d3dafe","#a8b6ff","#7f94ff"],base:void 0,tooltipFormat:new n("{{fieldkey:fields}} - {{value}}"),tooltipValueLookups:{fields:{r:"Range",p:"Performance",t:"Target"}}},pie:{offset:0,sliceColors:["#3366cc","#dc3912","#ff9900","#109618","#66aa00","#dd4477","#0099c6","#990099"],borderWidth:0,borderColor:"#000",tooltipFormat:new n('● {{value}} ({{percent.1}}%)')},box:{raw:!1,boxLineColor:"#000",boxFillColor:"#cdf",whiskerColor:"#000",outlierLineColor:"#333",outlierFillColor:"#fff",medianColor:"#f00",showOutliers:!0,outlierIQR:1.5,spotRadius:1.5,target:void 0,targetColor:"#4a2",chartRangeMax:void 0,chartRangeMin:void 0,tooltipFormat:new n("{{field:fields}}: {{value}}"),tooltipFormatFieldlistKey:"field",tooltipValueLookups:{fields:{lq:"Lower Quartile",med:"Median",uq:"Upper Quartile",lo:"Left Outlier",ro:"Right Outlier",lw:"Left Whisker",rw:"Right Whisker"}}}}},E='.jqstooltip { position: absolute;left: 0px;top: 0px;visibility: hidden;background: rgb(0, 0, 0) transparent;background-color: rgba(0,0,0,0.6);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000);-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000)";color: white;font: 10px arial, san serif;text-align: left;white-space: nowrap;padding: 5px;border: 1px solid white;z-index: 10000;}.jqsfield { color: white;font: 10px arial, san serif;text-align: left;}',i=function(){var e,i;return e=function(){this.init.apply(this,arguments)},arguments.length>1?(arguments[0]?(e.prototype=t.extend(new arguments[0],arguments[arguments.length-1]),e._super=arguments[0].prototype):e.prototype=arguments[arguments.length-1],arguments.length>2&&(i=Array.prototype.slice.call(arguments,1,-1),i.unshift(e.prototype),t.extend.apply(t,i))):e.prototype=arguments[0],e.prototype.cls=e,e},t.SPFormatClass=n=i({fre:/\{\{([\w.]+?)(:(.+?))?\}\}/g,precre:/(\w+)\.(\d+)/,init:function(t,e){this.format=t,this.fclass=e},render:function(t,e,i){var n,o,s,r,a,l=this,u=t;return this.format.replace(this.fre,function(){var t;return o=arguments[1],s=arguments[3],n=l.precre.exec(o),n?(a=n[2],o=n[1]):a=!1,void 0===(r=u[o])?"":s&&e&&e[s]?(t=e[s],t.get?e[s].get(r)||r:e[s][r]||r):(h(r)&&(r=i.get("numberFormatter")?i.get("numberFormatter")(r):g(r,a,i.get("numberDigitGroupCount"),i.get("numberDigitGroupSep"),i.get("numberDecimalMark"))),r)})}}),t.spformat=function(t,e){return new n(t,e)},o=function(t,e,i){return ti?i:t},s=function(t,e){var i;return 2===e?(i=a.floor(t.length/2),t.length%2?t[i]:(t[i-1]+t[i])/2):t.length%2?(i=(t.length*e+e)/4,i%1?(t[a.floor(i)]+t[a.floor(i)-1])/2:t[i-1]):(i=(t.length*e+2)/4,i%1?(t[a.floor(i)]+t[a.floor(i)-1])/2:t[i-1])},l=function(t){var e;switch(t){case"undefined":t=void 0;break;case"null":t=null;break;case"true":t=!0;break;case"false":t=!1;break;default:e=parseFloat(t),t==e&&(t=e)}return t},u=function(t){var e,i=[];for(e=t.length;e--;)i[e]=l(t[e]);return i},c=function(t,e){var i,n,o=[];for(i=0,n=t.length;i0;a-=n)e.splice(a,0,o);return e.join("")},d=function(t,e,i){var n;for(n=e.length;n--;)if((!i||null!==e[n])&&e[n]!==t)return!1;return!0},f=function(e){return t.isArray(e)?e:[e]},p=function(t){var e;r.createStyleSheet?r.createStyleSheet().cssText=t:(e=r.createElement("style"),e.type="text/css",r.getElementsByTagName("head")[0].appendChild(e),e["string"==typeof r.body.style.WebkitAppearance?"innerText":"innerHTML"]=t)},t.fn.simpledraw=function(e,i,n,o){var s,a;if(n&&(s=this.data("_jqs_vcanvas")))return s;if(!1===t.fn.sparkline.canvas)return!1;if(void 0===t.fn.sparkline.canvas){var l=r.createElement("canvas");if(l.getContext&&l.getContext("2d"))t.fn.sparkline.canvas=function(t,e,i,n){return new O(t,e,i,n)};else{if(!r.namespaces||r.namespaces.v)return t.fn.sparkline.canvas=!1,!1;r.namespaces.add("v","urn:schemas-microsoft-com:vml","#default#VML"),t.fn.sparkline.canvas=function(t,e,i,n){return new P(t,e,i)}}}return void 0===e&&(e=t(this).innerWidth()),void 0===i&&(i=t(this).innerHeight()),s=t.fn.sparkline.canvas(e,i,this,o),a=t(this).data("_jqs_mhandler"),a&&a.registerCanvas(s),s},t.fn.cleardraw=function(){var t=this.data("_jqs_vcanvas");t&&t.reset()},t.RangeMapClass=m=i({init:function(t){var e,i,n=[];for(e in t)t.hasOwnProperty(e)&&"string"==typeof e&&e.indexOf(":")>-1&&(i=e.split(":"),i[0]=0===i[0].length?-1/0:parseFloat(i[0]),i[1]=0===i[1].length?1/0:parseFloat(i[1]),i[2]=t[e],n.push(i));this.map=t,this.rangelist=n||!1},get:function(t){var e,i,n,o=this.rangelist;if(void 0!==(n=this.map[t]))return n;if(o)for(e=o.length;e--;)if(i=o[e],i[0]<=t&&i[1]>=t)return i[2]}}),t.range_map=function(t){return new m(t)},v=i({init:function(e,i){var n=t(e);this.$el=n,this.options=i,this.currentPageX=0,this.currentPageY=0,this.el=e,this.splist=[],this.tooltip=null,this.over=!1,this.displayTooltips=!i.get("disableTooltips"),this.highlightEnabled=!i.get("disableHighlight")},registerSparkline:function(t){this.splist.push(t),this.over&&this.updateDisplay()},registerCanvas:function(e){var i=t(e.canvas);this.canvas=e,this.$canvas=i,i.mouseenter(t.proxy(this.mouseenter,this)),i.mouseleave(t.proxy(this.mouseleave,this)),i.click(t.proxy(this.mouseclick,this))},reset:function(t){this.splist=[],this.tooltip&&t&&(this.tooltip.remove(),this.tooltip=void 0)},mouseclick:function(e){var i=t.Event("sparklineClick");i.originalEvent=e,i.sparklines=this.splist,this.$el.trigger(i)},mouseenter:function(e){t(r.body).unbind("mousemove.jqs"),t(r.body).bind("mousemove.jqs",t.proxy(this.mousemove,this)),this.over=!0,this.currentPageX=e.pageX,this.currentPageY=e.pageY,this.currentEl=e.target,!this.tooltip&&this.displayTooltips&&(this.tooltip=new y(this.options),this.tooltip.updatePosition(e.pageX,e.pageY)),this.updateDisplay()},mouseleave:function(){t(r.body).unbind("mousemove.jqs");var e,i,n=this.splist,o=n.length,s=!1;for(this.over=!1,this.currentEl=null,this.tooltip&&(this.tooltip.remove(),this.tooltip=null),i=0;i
    '}),e.prototype=t.extend({},t.fn.tooltip.Constructor.prototype),e.prototype.constructor=e,e.prototype.getDefaults=function(){return e.DEFAULTS},e.prototype.setContent=function(){var t=this.tip(),e=this.getTitle(),i=this.getContent();t.find(".popover-title")[this.options.html?"html":"text"](e),t.find(".popover-content")[this.options.html?"html":"text"](i),t.removeClass("fade top bottom left right in"),t.find(".popover-title").html()||t.find(".popover-title").hide()},e.prototype.hasContent=function(){return this.getTitle()||this.getContent()},e.prototype.getContent=function(){var t=this.$element,e=this.options;return t.attr("data-content")||("function"==typeof e.content?e.content.call(t[0]):e.content)},e.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},e.prototype.tip=function(){return this.$tip||(this.$tip=t(this.options.template)),this.$tip};var i=t.fn.popover;t.fn.popover=function(i){return this.each(function(){var n=t(this),o=n.data("bs.popover"),s="object"==typeof i&&i;o||n.data("bs.popover",o=new e(this,s)),"string"==typeof i&&o[i]()})},t.fn.popover.Constructor=e,t.fn.popover.noConflict=function(){return t.fn.popover=i,this}}(e)}).call(e,i(0),i(0))},function(t,e){var i;i=function(){return this}();try{i=i||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(i=window)}t.exports=i},function(t,e){t.exports=function(){throw new Error("define cannot be used indirect")}},function(t,e,i){"use strict";(function(t,e,n,o,s){function r(t){return t&&t.__esModule?t:{default:t}}function a(e,i,n){function o(t){var e=s(t),i={placeholder:"Click to select",closeOnSelect:!e.is("[MULTIPLE]"),dropdownAutoWidth:!0,containerCssClass:"select2-minwidth"};return t.select2(i)}t.fn.select2&&(void 0===e&&(e=20),void 0===i&&(i=3e3),n=n||s("select"),n.each(function(){var t=s(this).not("[multiple]"),n=t.find("option").length;ni||t.hasClass("no-autocomplete")||o(t)}))}function l(){s("select[refresh_on_change='true']").off("change").change(function(){var t=s(this),e=t.val(),i=t.attr("refresh_on_change_values");if(i){i=i.split(",");var n=t.attr("last_selected_value");if(-1===s.inArray(e,i)&&-1===s.inArray(n,i))return}s(window).trigger("refresh_on_change"),s(document).trigger("convert_to_values"),t.get(0).form.submit()}),s(":checkbox[refresh_on_change='true']").off("click").click(function(){var t=s(this),e=t.val(),i=t.attr("refresh_on_change_values");if(i){i=i.split(",");var n=t.attr("last_selected_value");if(-1===s.inArray(e,i)&&-1===s.inArray(n,i))return}s(window).trigger("refresh_on_change"),t.get(0).form.submit()}),s("a[confirm]").off("click").click(function(){return confirm(s(this).attr("confirm"))})}var u=i(41),c=r(u),h=i(69),d=r(h),p=i(114),f=r(p),g=i(115),m=r(g),v=i(68),y=r(v),b=i(70),w=r(b),_=i(11);r(_);window.$=t,window._=n,window.Backbone=o,window.panels=c.default,n.extend(window,d.default),window.async_save_text=f.default,window.make_popupmenu=m.default.make_popupmenu,window.make_popup_menus=m.default.make_popup_menus,window.init_tag_click_function=y.default,window.init_refresh_on_change=l,s(document).ready(function(){function t(){void 0!==Galaxy.root?s.getJSON(Galaxy.root+"api/webhooks/onload/all",function(t){n.each(t,function(t){t.activate&&t.script&&(s("