diff --git a/src/Umbraco.Core/Configuration/UmbracoSettings/RepositoryElement.cs b/src/Umbraco.Core/Configuration/UmbracoSettings/RepositoryElement.cs index b7a1157c40..21319f01e4 100644 --- a/src/Umbraco.Core/Configuration/UmbracoSettings/RepositoryElement.cs +++ b/src/Umbraco.Core/Configuration/UmbracoSettings/RepositoryElement.cs @@ -19,7 +19,7 @@ namespace Umbraco.Core.Configuration.UmbracoSettings set { base["guid"] = value; } } - [ConfigurationProperty("repositoryurl", DefaultValue = "http://packages.umbraco.org")] + [ConfigurationProperty("repositoryurl", DefaultValue = "http://our.umbraco.org")] public string RepositoryUrl { get { return (string)base["repositoryurl"]; } diff --git a/src/Umbraco.Web.UI.Client/lib/umbraco/LegacyUmbClientMgr.js b/src/Umbraco.Web.UI.Client/lib/umbraco/LegacyUmbClientMgr.js index d9a832d055..d4e31c81ee 100644 --- a/src/Umbraco.Web.UI.Client/lib/umbraco/LegacyUmbClientMgr.js +++ b/src/Umbraco.Web.UI.Client/lib/umbraco/LegacyUmbClientMgr.js @@ -361,7 +361,7 @@ Umbraco.Sys.registerNamespace("Umbraco.Application"); else { //instead of calling just the dialog service we funnel it through the global //event emitter - getRootScope().$emit("closeDialogs", event); + getRootScope().$emit("closeDialogs", undefined); } }, _debug: function(strMsg) { diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/html/umbpanel.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/html/umbpanel.directive.js index 2d399a063b..a78902e26a 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/html/umbpanel.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/html/umbpanel.directive.js @@ -4,11 +4,59 @@ * @restrict E **/ angular.module("umbraco.directives.html") - .directive('umbPanel', function(){ + .directive('umbPanel', function($timeout){ return { restrict: 'E', replace: true, transclude: 'true', - templateUrl: 'views/directives/html/umb-panel.html' + templateUrl: 'views/directives/html/umb-panel.html', + link: function (scope, el, attrs) { + + function _setClass(resize){ + var bar = $(".tab-content .active .umb-tab-buttons"); + + //incase this runs without any tabs + if(bar.length === 0){ + bar = $(".tab-content .umb-tab-buttons"); + } + + //no need to process + if(resize){ + bar.removeClass("umb-bottom-bar"); + } + + //already positioned + if(bar.hasClass("umb-bottom-bar")){ + return; + } + + var offset = bar.offset(); + + if(offset){ + var bottom = bar.offset().top + bar.height(); + if(bottom > $(window).height()){ + bar.addClass("umb-bottom-bar"); + $(".tab-content .active").addClass("with-buttons"); + }else{ + bar.removeClass("umb-bottom-bar"); + $(".tab-content .active").removeClass("with-buttons"); + } + } + } + + + //initial loading + $timeout(function(){ + $('a[data-toggle="tab"]').on('shown', function (e) { + _setClass(); + }); + _setClass(); + }, 1000, false); + + + $(window).bind("resize", function () { + _setClass(true); + }); + } }; }); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/umbheader.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/umbheader.directive.js index 5f51f3d465..cba6a05e60 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/umbheader.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/umbheader.directive.js @@ -17,8 +17,9 @@ angular.module("umbraco.directives") function collectFromDom(activeTab){ var $panes = $('div.tab-content'); - $panes.find('.tab-pane').each(function (index) { - var $this = angular.element(this); + angular.forEach($panes.find('.tab-pane'), function (pane, index) { + var $this = angular.element(pane); + var id = $this.attr("rel"); var label = $this.attr("label"); var tab = {id: id, label: label, active: false}; @@ -35,15 +36,10 @@ angular.module("umbraco.directives") } if(label){ - if(scope.visibleTabs.length < maxTabs || tab.id === 0){ scope.visibleTabs.push(tab); - }else{ - scope.overflownTabs.push(tab); - } } }); - } scope.showTabs = iAttrs.tabs ? true : false; @@ -58,15 +54,9 @@ angular.module("umbraco.directives") //unfortunately twitter bootstrap tabs is not playing perfectly with angular. scope.$watch("tabs", function (newValue, oldValue) { - $(newValue).each(function(i, val){ + angular.forEach(newValue, function(val, index){ var tab = {id: val.id, label: val.label}; - if(scope.visibleTabs.length < maxTabs || tab.id === 0){ - scope.visibleTabs.push(tab); - }else{ - scope.overflownTabs.push(tab); - } - - //scope.visibleTabs.push({id: val.id, label: val.label}); + scope.visibleTabs.push(tab); }); //don't process if we cannot or have already done so diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/umbtabview.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/umbtabview.directive.js index 32f384c4d9..505acb3328 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/umbtabview.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/umbtabview.directive.js @@ -9,50 +9,6 @@ angular.module("umbraco.directives") restrict: 'E', replace: true, transclude: 'true', - templateUrl: 'views/directives/umb-tab-view.html', - - link: function (scope, el, attrs) { - - function _setClass(resize){ - var bar = $(".tab-content .active .umb-tab-buttons"); - - //no need to process - if(resize){ - bar.removeClass("umb-bottom-bar"); - } - - //already positioned - if(bar.hasClass("umb-bottom-bar")){ - return; - } - - var offset = bar.offset(); - - if(offset){ - var bottom = bar.offset().top + bar.height(); - if(bottom > $(window).height()){ - bar.addClass("umb-bottom-bar"); - $(".tab-content .active").addClass("with-buttons"); - }else{ - bar.removeClass("umb-bottom-bar"); - $(".tab-content .active").removeClass("with-buttons"); - } - } - } - - - //initial loading - $timeout(function(){ - $('a[data-toggle="tab"]').on('shown', function (e) { - _setClass(); - }); - - _setClass(); - }, 500, false); - - $(window).bind("resize", function () { - _setClass(true); - }); - } + templateUrl: 'views/directives/umb-tab-view.html' }; }); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/common/services/util.service.js b/src/Umbraco.Web.UI.Client/src/common/services/util.service.js index b2ff5f07e6..9ede02934b 100644 --- a/src/Umbraco.Web.UI.Client/src/common/services/util.service.js +++ b/src/Umbraco.Web.UI.Client/src/common/services/util.service.js @@ -422,7 +422,7 @@ angular.module('umbraco.services').factory('umbDataFormatter', umbDataFormatter) * @name umbraco.services.iconHelper * @description A helper service for dealing with icons, mostly dealing with legacy tree icons **/ -function iconHelper($q) { +function iconHelper($q, $timeout) { var converter = [ { oldIcon: ".sprNew", newIcon: "add" }, @@ -566,40 +566,41 @@ function iconHelper($q) { /** Return a list of icons, optionally filter them */ /** It fetches them directly from the active stylesheets in the browser */ - getIcons: function(filter){ - + getIcons: function(){ var deferred = $q.defer(); - if(collectedIcons){ - deferred.resolve(collectedIcons); - } + $timeout(function(){ + if(collectedIcons){ + deferred.resolve(collectedIcons); + }else{ + collectedIcons = []; + var c = ".icon-"; - collectedIcons = []; - var f = filter || ""; - var c = ".icon-" + f; - for (var i = document.styleSheets.length - 1; i >= 0; i--) { - var classes = document.styleSheets[i].rules || document.styleSheets[i].cssRules; - - for(var x=0;x0){ - s = s.substring(0, hasSpace); - } - var hasPseudo = s.indexOf(":"); - if(hasPseudo>0){ - s = s.substring(0, hasPseudo); - } + for (var i = document.styleSheets.length - 1; i >= 0; i--) { + var classes = document.styleSheets[i].rules || document.styleSheets[i].cssRules; + + for(var x=0;x0){ + s = s.substring(0, hasSpace); + } + var hasPseudo = s.indexOf(":"); + if(hasPseudo>0){ + s = s.substring(0, hasPseudo); + } - if(collectedIcons.indexOf(s) < 0){ - collectedIcons.push(s); + if(collectedIcons.indexOf(s) < 0){ + collectedIcons.push(s); + } + } } } + deferred.resolve(collectedIcons); } - } - - deferred.resolve(collectedIcons); + }, 100); + return deferred.promise; }, diff --git a/src/Umbraco.Web.UI.Client/src/less/hacks.less b/src/Umbraco.Web.UI.Client/src/less/hacks.less index e02289e9b0..b4d5280db1 100644 --- a/src/Umbraco.Web.UI.Client/src/less/hacks.less +++ b/src/Umbraco.Web.UI.Client/src/less/hacks.less @@ -10,7 +10,6 @@ .ui-sortable-placeholder { margin-left: 0 !important; } - .controls-row img { max-width: none; } @@ -28,11 +27,6 @@ iframe, .content-column-body { border: none; } -/* ng-cloak support with lazyloading */ -[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak { - display: none; -} - /* JQUERY FILEUPLOAD TEMP STYLES */ .fileinput-button { position: relative; diff --git a/src/Umbraco.Web.UI.Client/src/less/panel.less b/src/Umbraco.Web.UI.Client/src/less/panel.less index 97ab641eb6..45acb1c145 100644 --- a/src/Umbraco.Web.UI.Client/src/less/panel.less +++ b/src/Umbraco.Web.UI.Client/src/less/panel.less @@ -126,7 +126,6 @@ /* Publish */ - .umb-btn-toolbar .dropdown-menu { right: 0; left: auto; @@ -171,7 +170,7 @@ .umb-tab-buttons{padding-left: 240px;} .umb-tab-pane.with-buttons{padding-bottom: 80px} - +.tab-content{overflow: visible; } // Utility classes diff --git a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/iconpicker.controller.js b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/iconpicker.controller.js index 5c6724df5e..51e3bd228a 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/iconpicker.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/iconpicker.controller.js @@ -2,7 +2,10 @@ angular.module("umbraco") .controller("Umbraco.Dialogs.IconPickerController", function ($scope, iconHelper) { - iconHelper.getIcons("").then(function(icons){ + + iconHelper.getIcons().then(function(icons){ $scope.icons = icons; }); -}); \ No newline at end of file + + } + ); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/iconpicker.html b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/iconpicker.html index 715f49395f..f02a8923be 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/iconpicker.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/iconpicker.html @@ -15,6 +15,7 @@ \ No newline at end of file diff --git a/src/Umbraco.Web.UI/umbraco/controls/ContentTypeControlNew.ascx b/src/Umbraco.Web.UI/umbraco/controls/ContentTypeControlNew.ascx index 1498183577..b6fbbd6bde 100644 --- a/src/Umbraco.Web.UI/umbraco/controls/ContentTypeControlNew.ascx +++ b/src/Umbraco.Web.UI/umbraco/controls/ContentTypeControlNew.ascx @@ -59,7 +59,7 @@ @@ -115,7 +115,7 @@ duplicatePropertyNameAsSafeAlias('ul.addNewProperty .prop-name', 'ul.addNewProperty .prop-alias'); - jQuery(".icon-picker").click(function(){ + jQuery(".picker-icons").click(function(){ var that = this; UmbClientMgr.openAngularModalWindow({ template: 'views/common/dialogs/iconpicker.html', diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadPackager.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadPackager.cs index a8cfcc12c5..196c5ab46d 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadPackager.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadPackager.cs @@ -124,9 +124,11 @@ namespace umbraco case "BrowseRepository.aspx": + /* //Gets all the repositories registered in umbracoSettings.config var repos = cms.businesslogic.packager.repositories.Repository.getAll(); + //if more then one repo, then list them as child nodes under the "Install from repository" node. // the repositories will then be fetched from the loadPackages class. if (repos.Count > 1) @@ -136,24 +138,17 @@ namespace umbraco xNode.Text = ui.Text("treeHeaders", "repositories"); xNode.HasChildren = true; } - + */ //if only one repo, then just list it directly and name it as the repository. //the packages will be loaded from the loadPackages class with a repoAlias querystring - else if (repos.Count == 1) - { - xNode.Text = repos[0].Name; - xNode.Source = "tree.aspx?app=" + this._app + "&id=" + this._id + "&treeType=packagerPackages&packageType=repository&repoGuid=" + repos[0].Guid + "&rnd=" + Guid.NewGuid(); - xNode.NodeType = "packagesRepository"; - xNode.Action = "javascript:openPackageCategory('BrowseRepository.aspx?repoGuid=" + repos[0].Guid + "');"; - xNode.Icon = "icon-server-alt"; - xNode.HasChildren = true; - } - - //if none registered, then remove the repo node. - else if (repos.Count == 0) - { - xNode.Text = ""; - } + var repos = cms.businesslogic.packager.repositories.Repository.getAll(); + + xNode.Text = repos[0].Name; + xNode.Source = "tree.aspx?app=" + this._app + "&id=" + this._id + "&treeType=packagerPackages&packageType=repository&repoGuid=" + repos[0].Guid + "&rnd=" + Guid.NewGuid(); + xNode.NodeType = "packagesRepository"; + xNode.Action = "javascript:openPackageCategory('BrowseRepository.aspx?repoGuid=" + repos[0].Guid + "');"; + xNode.Icon = "icon-server-alt"; + xNode.HasChildren = true; break; diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadPackages.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadPackages.cs index 4ae493b038..baefe56c6b 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadPackages.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadPackages.cs @@ -112,22 +112,18 @@ namespace umbraco case "repository": _repoGuid = HttpContext.Current.Request.QueryString["repoGuid"]; - var currentRepo = cms.businesslogic.packager.repositories.Repository.getByGuid(_repoGuid); - if (currentRepo != null) + Umbraco.Web.org.umbraco.our.Repository r = new Umbraco.Web.org.umbraco.our.Repository(); + foreach (var cat in r.Categories(_repoGuid)) { - - foreach (cms.businesslogic.packager.repositories.Category cat in currentRepo.Webservice.Categories(currentRepo.Guid)) - { - - XmlTreeNode xNode = XmlTreeNode.Create(this); - xNode.Text = cat.Text; - xNode.Action = "javascript:openPackageCategory('BrowseRepository.aspx?category=" + cat.Id + "&repoGuid=" + currentRepo.Guid + "');"; - xNode.Icon = "icon-folder"; - xNode.OpenIcon = "icon-folder"; - xNode.NodeType = "packagesCategory" + cat.Id; - tree.Add(xNode); - } + XmlTreeNode xNode = XmlTreeNode.Create(this); + xNode.Text = cat.Text; + xNode.Action = "javascript:openPackageCategory('BrowseRepository.aspx?category=" + cat.Id + "&repoGuid=" + _repoGuid + "');"; + xNode.Icon = "icon-folder"; + xNode.OpenIcon = "icon-folder"; + xNode.NodeType = "packagesCategory" + cat.Id; + tree.Add(xNode); } + break; } diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Packages/BrowseRepository.aspx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Packages/BrowseRepository.aspx.cs index 696aa8534a..90538bfb33 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Packages/BrowseRepository.aspx.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Packages/BrowseRepository.aspx.cs @@ -49,7 +49,7 @@ namespace umbraco.presentation.developer.packages { iframeGen.Text = string.Format( - "", + "", url, repoGuid, category, Request.ServerVariables["SERVER_NAME"], Request.ServerVariables["SERVER_PORT"], IOHelper.ResolveUrl(SystemDirectories.Umbraco), IOHelper.ResolveUrl(SystemDirectories.Umbraco).Trim('/'), repoGuid, diff --git a/src/umbraco.cms/businesslogic/Packager/Repositories/RepositoryWebservice.cs b/src/umbraco.cms/businesslogic/Packager/Repositories/RepositoryWebservice.cs index fb8f770391..ccf8566687 100644 --- a/src/umbraco.cms/businesslogic/Packager/Repositories/RepositoryWebservice.cs +++ b/src/umbraco.cms/businesslogic/Packager/Repositories/RepositoryWebservice.cs @@ -53,7 +53,7 @@ namespace umbraco.cms.businesslogic.packager.repositories /// public RepositoryWebservice(string url) { - this.Url = url;//"http://packages.umbraco.org/umbraco/webservices/api/repository.asmx"; + this.Url = url;//"http://our.umbraco.org/umbraco/webservices/api/repository.asmx"; } ///