@@ -66,7 +66,7 @@
-
+
@@ -118,8 +118,8 @@
-
diff --git a/OurUmbraco.Site/umbraco/config/lang/en.xml b/OurUmbraco.Site/umbraco/config/lang/en.xml
index 1ebcf1b9..79fad326 100644
--- a/OurUmbraco.Site/umbraco/config/lang/en.xml
+++ b/OurUmbraco.Site/umbraco/config/lang/en.xml
@@ -841,6 +841,11 @@ To manage your website, simply open the Umbraco back office and start adding con
Partial view saved without any errors!
Partial view not saved
An error occurred saving the file.
+ Script view saved
+ Script view saved without any errors!
+ Script view not saved
+ An error occurred saving the file.
+ An error occurred saving the file.
Uses CSS syntax ex: h1, .redHeader, .blueTex
diff --git a/OurUmbraco.Site/umbraco/config/lang/en_us.xml b/OurUmbraco.Site/umbraco/config/lang/en_us.xml
index 10c4ba41..5bffa3fe 100644
--- a/OurUmbraco.Site/umbraco/config/lang/en_us.xml
+++ b/OurUmbraco.Site/umbraco/config/lang/en_us.xml
@@ -842,6 +842,11 @@ To manage your website, simply open the Umbraco back office and start adding con
Partial view saved without any errors!
Partial view not saved
An error occurred saving the file.
+ Script view saved
+ Script view saved without any errors!
+ Script view not saved
+ An error occurred saving the file.
+ An error occurred saving the file.
Uses CSS syntax ex: h1, .redHeader, .blueTex
diff --git a/OurUmbraco.Site/umbraco/config/lang/ja.xml b/OurUmbraco.Site/umbraco/config/lang/ja.xml
index 237f0cc4..db3fb725 100644
--- a/OurUmbraco.Site/umbraco/config/lang/ja.xml
+++ b/OurUmbraco.Site/umbraco/config/lang/ja.xml
@@ -52,11 +52,11 @@
ドメイン '%0%' は既に割り当てられています
ドメイン '%0%' は更新されました
ドメインの編集
-
+
Inherit
カルチャの割り当て
- ドメインの割り当て
+ ドメイン割り当て
これらを表示
@@ -165,6 +165,10 @@
クリックしてアップロードする
ファイルをここへドロップ..
+
+
+ メンバーの新規作成
+ 全てのメンバー
どこに新しい %0% を作りますか
@@ -674,13 +678,19 @@ Runwayをインストールして作られた新しいウェブサイトがど
単一のログインとパスワードで単純に保護したい場合に適します
-
+
-
+
+
-
+
非公開の子ページも含めます
@@ -693,12 +703,20 @@ Runwayをインストールして作られた新しいウェブサイトがど
このページとその全ての子ページも公開したければ 全ての子ページを公開 をチェック。
]]>
+
+ 設定済みの色はありません。
+
外部リンクを追加
内部リンクを追加
追加
タイトル
+ キャプション表示を入力
+ 内部リンクを選択
+ 外部リンクを入力
+ リンクを入力
内部ページ
+ リンク
URL
下に移動
上に移動
@@ -737,6 +755,12 @@ Runwayをインストールして作られた新しいウェブサイトがど
フォーム
アナリティクス
+
+ 該当のヘルプへ
+ ヘルプトピック:
+ ヘルプの動画:
+ 動画によるチュートリアル
+
既定のテンプレート
ディクショナリのキー
@@ -763,6 +787,10 @@ Runwayをインストールして作られた新しいウェブサイトがど
並び替え中はウィンドウを閉じないでください。]]>
+ 失敗しました
+ 不十分なユーザー権限により操作を完了できませんでした
+ キャンセルされました
+ サードパーティのアドインにより操作はキャンセルされました
サードパーティのアドインにより公開はキャンセルされました
プロパティの方は既に存在しています
プロパティの型を作成しました
diff --git a/OurUmbraco.Site/umbraco/config/lang/ru.xml b/OurUmbraco.Site/umbraco/config/lang/ru.xml
index df1273ae..d5bfbaff 100644
--- a/OurUmbraco.Site/umbraco/config/lang/ru.xml
+++ b/OurUmbraco.Site/umbraco/config/lang/ru.xml
@@ -437,6 +437,12 @@
Страница
+
+ перейти к
+ Разделы справки для
+ Обучающие видео для
+ Лучшие обучающие видеокурсы по Umbraco
+
Сбросить
@@ -588,6 +594,10 @@
Нажмите, чтобы загрузить
Перетащите файлы сюда...
+
+ Создать нового участника
+ Все участники
+
Выберите страницу...
Узел %0% был скопирован в %1%
diff --git a/OurUmbraco.Site/umbraco/dialogs/editMacro.aspx b/OurUmbraco.Site/umbraco/dialogs/editMacro.aspx
index 93447605..c9225ac7 100644
--- a/OurUmbraco.Site/umbraco/dialogs/editMacro.aspx
+++ b/OurUmbraco.Site/umbraco/dialogs/editMacro.aspx
@@ -4,6 +4,7 @@
<%@ Import Namespace="Umbraco.Core.Configuration" %>
<%@ Import Namespace="Umbraco.Web" %>
+<%@ Import Namespace="Umbraco.Core" %>
<%@ Register TagPrefix="cc2" Namespace="umbraco.uicontrols" Assembly="controls" %>
@@ -15,7 +16,7 @@
$(document).ready(function () {
Umbraco.Dialogs.EditMacro.getInstance().init({
useAspNetMasterPages: <%=UmbracoConfig.For.UmbracoSettings().Templates.UseAspNetMasterPages.ToString().ToLower() %>,
- codeEditorElementId: "<%=Request.GetItemAsString("objectId")%>",
+ codeEditorElementId: "<%=Request.CleanForXss("objectId") %>",
renderingEngine: "<%=Request.GetItemAsString("renderingEngine", "Mvc")%>",
macroAlias: '<%= _macroAlias %>'
});
diff --git a/OurUmbraco.Site/umbraco/endPreview.aspx b/OurUmbraco.Site/umbraco/endPreview.aspx
index a56af97f..05fc2ddd 100644
--- a/OurUmbraco.Site/umbraco/endPreview.aspx
+++ b/OurUmbraco.Site/umbraco/endPreview.aspx
@@ -5,9 +5,7 @@
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
-
global::umbraco.presentation.preview.PreviewContent.ClearPreviewCookie();
-
if (!Uri.IsWellFormedUriString(Request.QueryString["redir"], UriKind.Relative))
{
Response.Redirect("/", true);
@@ -17,7 +15,10 @@
{
Response.Redirect("/", true);
}
-
+ if (Request.QueryString["redir"].StartsWith("//"))
+ {
+ Response.Redirect("/", true);
+ }
Response.Redirect(url.ToString(), true);
}
diff --git a/OurUmbraco.Site/umbraco/js/umbraco.controllers.js b/OurUmbraco.Site/umbraco/js/umbraco.controllers.js
index 718e3816..c1764c4f 100644
--- a/OurUmbraco.Site/umbraco/js/umbraco.controllers.js
+++ b/OurUmbraco.Site/umbraco/js/umbraco.controllers.js
@@ -99,7 +99,7 @@ function MainController($scope, $rootScope, $location, $routeParams, $timeout, $
$timeout(function () {
//this can be null if they time out
if ($scope.user && $scope.user.emailHash) {
- $scope.avatar = "//www.gravatar.com/avatar/" + $scope.user.emailHash + ".jpg?s=64&d=mm";
+ $scope.avatar = "https://www.gravatar.com/avatar/" + $scope.user.emailHash + ".jpg?s=64&d=mm";
}
});
$("#avatar-img").fadeTo(1000, 1);
@@ -608,16 +608,23 @@ function ContentEditDialogController($scope, editorState, $routeParams, $q, $tim
angular.module("umbraco")
.controller("Umbraco.Dialogs.Content.EditController", ContentEditDialogController);
angular.module("umbraco")
- .controller("Umbraco.Dialogs.HelpController", function ($scope, $location, $routeParams, helpService, userService) {
+ .controller("Umbraco.Dialogs.HelpController", function ($scope, $location, $routeParams, helpService, userService, localizationService) {
$scope.section = $routeParams.section;
$scope.version = Umbraco.Sys.ServerVariables.application.version + " assembly: " + Umbraco.Sys.ServerVariables.application.assemblyVersion;
if(!$scope.section){
- $scope.section ="content";
+ $scope.section = "content";
}
+ $scope.sectionName = $scope.section;
+
var rq = {};
rq.section = $scope.section;
+
+ //translate section name
+ localizationService.localize("sections_" + rq.section).then(function (value) {
+ $scope.sectionName = value;
+ });
userService.getCurrentUser().then(function(user){
@@ -2051,7 +2058,7 @@ angular.module("umbraco").controller("Umbraco.Dialogs.YsodController", YsodContr
*/
function LegacyController($scope, $routeParams, $element) {
- var url = decodeURIComponent($routeParams.url.toLowerCase().replace(/javascript\:/g, ""));
+ var url = decodeURIComponent($routeParams.url.replace(/javascript\:/gi, ""));
//split into path and query
var urlParts = url.split("?");
var extIndex = urlParts[0].lastIndexOf(".");
@@ -3182,7 +3189,7 @@ function examineMgmtController($scope, umbRequestHelper, $log, $http, $q, $timeo
umbRequestHelper.resourcePromise(
$http.get(umbRequestHelper.getApiUrl("examineMgmtBaseUrl", "GetSearchResults", {
searcherName: searcher.name,
- query: searcher.searchText,
+ query: encodeURIComponent(searcher.searchText),
queryType: searcher.searchType
})),
'Failed to search')
@@ -4062,7 +4069,7 @@ angular.module("umbraco").controller("Umbraco.Editors.Member.EditController", Me
* @description
* The controller for the member list view
*/
-function MemberListController($scope, $routeParams, $location, $q, $window, appState, memberResource, entityResource, navigationService, notificationsService, angularHelper, serverValidationManager, contentEditingHelper, fileManager, formHelper, umbModelMapper, editorState) {
+function MemberListController($scope, $routeParams, $location, $q, $window, appState, memberResource, entityResource, navigationService, notificationsService, angularHelper, serverValidationManager, contentEditingHelper, fileManager, formHelper, umbModelMapper, editorState, localizationService) {
//setup scope vars
$scope.currentSection = appState.getSectionState("currentSection");
@@ -4074,6 +4081,13 @@ function MemberListController($scope, $routeParams, $location, $q, $window, appS
$scope.loaded = true;
$scope.content = data;
+ //translate "All Members"
+ if ($scope.content != null && $scope.content.name != null && $scope.content.name.replace(" ", "").toLowerCase() == "allmembers") {
+ localizationService.localize("member_allMembers").then(function (value) {
+ $scope.content.name = value;
+ });
+ }
+
editorState.set($scope.content);
navigationService.syncTree({ tree: "member", path: data.path.split(",") }).then(function (syncArgs) {
@@ -5558,7 +5572,10 @@ angular.module("umbraco")
} else {
return val.slice(paddArray[0].length, 0);
}
- }else{
+ } else {
+ if (paddArray[1].length === 0) {
+ return val.slice(paddArray[0].length);
+ }
return val.slice(paddArray[0].length, -paddArray[1].length);
}
}
@@ -5648,7 +5665,7 @@ angular.module("umbraco")
};
$scope.percentage = function(spans){
- return ((spans / $scope.columns) * 100).toFixed(1);
+ return ((spans / $scope.columns) * 100).toFixed(8);
};
$scope.toggleCollection = function(collection, toggle){
@@ -5717,7 +5734,7 @@ function RowConfigController($scope) {
};
$scope.percentage = function(spans) {
- return ((spans / $scope.columns) * 100).toFixed(1);
+ return ((spans / $scope.columns) * 100).toFixed(8);
};
$scope.toggleCollection = function(collection, toggle) {
@@ -5878,7 +5895,8 @@ angular.module("umbraco")
$scope.control.value = {
focalPoint: data.focalPoint,
id: data.id,
- image: data.image
+ image: data.image,
+ altText: data.altText
};
$scope.setUrl();
@@ -6349,7 +6367,7 @@ angular.module("umbraco")
};
$scope.percentage = function (spans) {
- return ((spans / $scope.model.config.items.columns) * 100).toFixed(1);
+ return ((spans / $scope.model.config.items.columns) * 100).toFixed(8);
};
@@ -6813,7 +6831,7 @@ angular.module("umbraco")
};
$scope.percentage = function(spans){
- return ((spans / $scope.model.value.columns) * 100).toFixed(1);
+ return ((spans / $scope.model.value.columns) * 100).toFixed(8);
};
$scope.zeroWidthFilter = function (cell) {
@@ -7254,7 +7272,7 @@ function includePropsPreValsController($rootScope, $scope, localizationService,
angular.module("umbraco").controller("Umbraco.PrevalueEditors.IncludePropertiesListViewController", includePropsPreValsController);
-function listViewController($rootScope, $scope, $routeParams, $injector, notificationsService, iconHelper, dialogService, editorState, localizationService, $location, appState) {
+function listViewController($rootScope, $scope, $routeParams, $injector, notificationsService, iconHelper, dialogService, editorState, localizationService, $location, appState, $timeout, $q) {
//this is a quick check to see if we're in create mode, if so just exit - we cannot show children for content
// that isn't created yet, if we continue this will use the parent id in the route params which isn't what
@@ -7347,15 +7365,17 @@ function listViewController($rootScope, $scope, $routeParams, $injector, notific
}
});
- function showNotificationsAndReset(err, reload) {
+ function showNotificationsAndReset(err, reload, successMsg) {
//check if response is ysod
if(err.status && err.status >= 500) {
dialogService.ysodDialog(err);
}
- $scope.bulkStatus = "";
- $scope.actionInProgress = false;
+ $timeout(function() {
+ $scope.bulkStatus = "";
+ $scope.actionInProgress = false;
+ }, 500);
if (reload === true) {
$scope.reloadView($scope.contentId);
@@ -7366,6 +7386,9 @@ function listViewController($rootScope, $scope, $routeParams, $injector, notific
notificationsService.showNotification(err.data.notifications[i]);
}
}
+ else if (successMsg) {
+ notificationsService.success("Done", successMsg);
+ }
}
$scope.isSortDirection = function (col, direction) {
@@ -7533,101 +7556,58 @@ function listViewController($rootScope, $scope, $routeParams, $injector, notific
return iconHelper.convertFromLegacyIcon(entry.icon);
};
- $scope.delete = function() {
- var selected = _.filter($scope.listViewResultSet.items, function(item) {
+ function serial(selected, fn, getStatusMsg, index) {
+ return fn(selected, index).then(function (content) {
+ index++;
+ $scope.bulkStatus = getStatusMsg(index, selected.length);
+ return index < selected.length ? serial(selected, fn, getStatusMsg, index) : content;
+ }, function (err) {
+ var reload = index > 0;
+ showNotificationsAndReset(err, reload);
+ return err;
+ });
+ }
+
+ function applySelected(fn, getStatusMsg, getSuccessMsg, confirmMsg) {
+ var selected = _.filter($scope.listViewResultSet.items, function (item) {
return item.selected;
});
- var total = selected.length;
- if (total === 0) {
+ if (selected.length === 0)
return;
- }
-
- if (confirm("Sure you want to delete?") == true) {
- $scope.actionInProgress = true;
- $scope.bulkStatus = "Starting with delete";
- var current = 1;
-
- var pluralSuffix = total == 1 ? "" : "s";
-
- for (var i = 0; i < selected.length; i++) {
- $scope.bulkStatus = "Deleted item " + current + " out of " + total + " item" + pluralSuffix;
- deleteItemCallback(getIdCallback(selected[i])).then(function (data) {
- if (current === total) {
- //TODO: Should probably add notifications on the server side
- notificationsService.success("Bulk action", "Deleted " + total + " item" + pluralSuffix);
- showNotificationsAndReset(data, true);
- }
- current++;
- }, function (err) {
- showNotificationsAndReset(err, false);
- });
- }
- }
-
- };
-
- $scope.publish = function() {
- var selected = _.filter($scope.listViewResultSet.items, function(item) {
- return item.selected;
- });
- var total = selected.length;
- if (total === 0) {
+ if (confirmMsg && !confirm(confirmMsg))
return;
- }
$scope.actionInProgress = true;
- $scope.bulkStatus = "Starting with publish";
- var current = 1;
+ $scope.bulkStatus = getStatusMsg(0, selected.length);
- var pluralSuffix = total == 1 ? "" : "s";
+ serial(selected, fn, getStatusMsg, 0).then(function (result) {
+ // executes once the whole selection has been processed
+ // in case of an error (caught by serial), result will be the error
+ if (!(result.data && angular.isArray(result.data.notifications)))
+ showNotificationsAndReset(result, true, getSuccessMsg(selected.length));
+ });
+ };
- for (var i = 0; i < selected.length; i++) {
- $scope.bulkStatus = "Publishing " + current + " out of " + total + " document" + pluralSuffix;
+ $scope.delete = function () {
+ applySelected(
+ function (selected, index) { return deleteItemCallback(getIdCallback(selected[index])) },
+ function (count, total) { return "Deleted " + count + " out of " + total + " document" + (total > 1 ? "s" : "") },
+ function (total) { return "Deleted " + total + " document" + (total > 1 ? "s" : "") },
+ "Sure you want to delete?");
+ };
- contentResource.publishById(getIdCallback(selected[i]))
- .then(function(content) {
- if (current == total) {
- notificationsService.success("Bulk action", "Published " + total + " document" + pluralSuffix);
- showNotificationsAndReset(content, true);
- }
- current++;
- }, function(err) {
- showNotificationsAndReset(err, false);
- });
- }
+ $scope.publish = function () {
+ applySelected(
+ function (selected, index) { return contentResource.publishById(getIdCallback(selected[index])); },
+ function (count, total) { return "Published " + count + " out of " + total + " document" + (total > 1 ? "s" : "") },
+ function (total) { return "Published " + total + " document" + (total > 1 ? "s" : "") });
};
$scope.unpublish = function() {
- var selected = _.filter($scope.listViewResultSet.items, function(item) {
- return item.selected;
- });
- var total = selected.length;
- if (total === 0) {
- return;
- }
-
- $scope.actionInProgress = true;
- $scope.bulkStatus = "Starting with publish";
- var current = 1;
-
- var pluralSuffix = total == 1 ? "" : "s";
-
- for (var i = 0; i < selected.length; i++) {
- $scope.bulkStatus = "Unpublishing " + current + " out of " + total + " document" + pluralSuffix;
-
- contentResource.unPublish(getIdCallback(selected[i]))
- .then(function(content) {
-
- if (current == total) {
- notificationsService.success("Bulk action", "Unpublished " + total + " document" + pluralSuffix);
- showNotificationsAndReset(content, true);
- }
-
- current++;
- }, function(err) {
- showNotificationsAndReset(err, false);
- });
- }
+ applySelected(
+ function (selected, index) { return contentResource.unPublish(getIdCallback(selected[index])); },
+ function (count, total) { return "Unpublished " + count + " out of " + total + " document" + (total > 1 ? "s" : "") },
+ function (total) { return "Unpublished " + total + " document" + (total > 1 ? "s" : "") });
};
function getCustomPropertyValue(alias, properties) {
diff --git a/OurUmbraco.Site/umbraco/js/umbraco.directives.js b/OurUmbraco.Site/umbraco/js/umbraco.directives.js
index b6a865e3..b13a5356 100644
--- a/OurUmbraco.Site/umbraco/js/umbraco.directives.js
+++ b/OurUmbraco.Site/umbraco/js/umbraco.directives.js
@@ -991,7 +991,7 @@ function avatarDirective() {
scope.$watch("hash", function (val) {
//set the gravatar url
- scope.gravatar = "//www.gravatar.com/avatar/" + val + "?s=40";
+ scope.gravatar = "https://www.gravatar.com/avatar/" + val + "?s=40";
});
}
diff --git a/OurUmbraco.Site/umbraco/js/umbraco.services.js b/OurUmbraco.Site/umbraco/js/umbraco.services.js
index 12b6974f..cd59d1cd 100644
--- a/OurUmbraco.Site/umbraco/js/umbraco.services.js
+++ b/OurUmbraco.Site/umbraco/js/umbraco.services.js
@@ -736,13 +736,32 @@ angular.module('umbraco.services')
/**
* @ngdoc service
* @name umbraco.services.contentEditingHelper
-* @description A helper service for most editors, some methods are specific to content/media/member model types but most are used by
+* @description A helper service for most editors, some methods are specific to content/media/member model types but most are used by
* all editors to share logic and reduce the amount of replicated code among editors.
**/
function contentEditingHelper(fileManager, $q, $location, $routeParams, notificationsService, serverValidationManager, dialogService, formHelper, appState, keyboardService) {
+ function isValidIdentifier(id){
+ //empty id <= 0
+ if(angular.isNumber(id) && id > 0){
+ return true;
+ }
+
+ //empty guid
+ if(id === "00000000-0000-0000-0000-000000000000"){
+ return false;
+ }
+
+ //empty string / alias
+ if(id === ""){
+ return false;
+ }
+
+ return true;
+ }
+
return {
-
+
/** Used by the content editor and mini content editor to perform saving operations */
contentEditorPerformSave: function (args) {
if (!angular.isObject(args)) {
@@ -764,7 +783,7 @@ function contentEditingHelper(fileManager, $q, $location, $routeParams, notifica
var self = this;
var deferred = $q.defer();
-
+
if (!args.scope.busy && formHelper.submitForm({ scope: args.scope, statusMessage: args.statusMessage })) {
args.scope.busy = true;
@@ -805,9 +824,9 @@ function contentEditingHelper(fileManager, $q, $location, $routeParams, notifica
return deferred.promise;
},
-
+
/** Returns the action button definitions based on what permissions the user has.
- The content.allowedActions parameter contains a list of chars, each represents a button by permission so
+ The content.allowedActions parameter contains a list of chars, each represents a button by permission so
here we'll build the buttons according to the chars of the user. */
configureContentEditorButtons: function (args) {
@@ -870,7 +889,7 @@ function contentEditingHelper(fileManager, $q, $location, $routeParams, notifica
handler: args.methods.unPublish
};
default:
- return null;
+ return null;
}
}
@@ -894,8 +913,8 @@ function contentEditingHelper(fileManager, $q, $location, $routeParams, notifica
//Now we need to make the drop down button list, this is also slightly tricky because:
//We cannot have any buttons if there's no default button above.
- //We cannot have the unpublish button (Z) when there's no publish permission.
- //We cannot have the unpublish button (Z) when the item is not published.
+ //We cannot have the unpublish button (Z) when there's no publish permission.
+ //We cannot have the unpublish button (Z) when the item is not published.
if (buttons.defaultButton) {
//get the last index of the button order
@@ -908,7 +927,7 @@ function contentEditingHelper(fileManager, $q, $location, $routeParams, notifica
}
- //if we are not creating, then we should add unpublish too,
+ //if we are not creating, then we should add unpublish too,
// so long as it's already published and if the user has access to publish
if (!args.create) {
if (args.content.publishDate && _.contains(args.content.allowedActions, "U")) {
@@ -969,13 +988,13 @@ function contentEditingHelper(fileManager, $q, $location, $routeParams, notifica
}
}
}
-
+
actions.push(defaultAction);
//Now we need to make the drop down button list, this is also slightly tricky because:
//We cannot have any buttons if there's no default button above.
- //We cannot have the unpublish button (Z) when there's no publish permission.
- //We cannot have the unpublish button (Z) when the item is not published.
+ //We cannot have the unpublish button (Z) when there's no publish permission.
+ //We cannot have the unpublish button (Z) when the item is not published.
if (defaultAction) {
//get the last index of the button order
var lastIndex = _.indexOf(actionOrder, defaultAction);
@@ -987,7 +1006,7 @@ function contentEditingHelper(fileManager, $q, $location, $routeParams, notifica
}
}
- //if we are not creating, then we should add unpublish too,
+ //if we are not creating, then we should add unpublish too,
// so long as it's already published and if the user has access to publish
if (!creating) {
if (content.publishDate && _.contains(content.allowedActions,"U")) {
@@ -1063,7 +1082,7 @@ function contentEditingHelper(fileManager, $q, $location, $routeParams, notifica
var allOrigProps = this.getAllProps(origContent);
var allNewProps = this.getAllProps(savedContent);
- function getNewProp(alias) {
+ function getNewProp(alias) {
return _.find(allNewProps, function (item) {
return item.alias === alias;
});
@@ -1077,12 +1096,12 @@ function contentEditingHelper(fileManager, $q, $location, $routeParams, notifica
};
//check for changed built-in properties of the content
for (var o in origContent) {
-
+
//ignore the ones listed in the array
if (shouldIgnore(o)) {
continue;
}
-
+
if (!_.isEqual(origContent[o], savedContent[o])) {
origContent[o] = savedContent[o];
}
@@ -1096,8 +1115,8 @@ function contentEditingHelper(fileManager, $q, $location, $routeParams, notifica
//they have changed so set the origContent prop to the new one
var origVal = allOrigProps[p].value;
allOrigProps[p].value = newProp.value;
-
- //instead of having a property editor $watch their expression to check if it has
+
+ //instead of having a property editor $watch their expression to check if it has
// been updated, instead we'll check for the existence of a special method on their model
// and just call it.
if (angular.isFunction(allOrigProps[p].onValueChanged)) {
@@ -1122,7 +1141,7 @@ function contentEditingHelper(fileManager, $q, $location, $routeParams, notifica
* A function to handle what happens when we have validation issues from the server side
*/
handleSaveError: function (args) {
-
+
if (!args.err) {
throw "args.err cannot be null";
}
@@ -1136,7 +1155,7 @@ function contentEditingHelper(fileManager, $q, $location, $routeParams, notifica
if (args.err.status === 400) {
//now we need to look through all the validation errors
if (args.err.data && (args.err.data.ModelState)) {
-
+
//wire up the server validation errs
formHelper.handleServerValidation(args.err.data.ModelState);
@@ -1148,7 +1167,7 @@ function contentEditingHelper(fileManager, $q, $location, $routeParams, notifica
if (args.rebindCallback && angular.isFunction(args.rebindCallback)) {
args.rebindCallback();
}
-
+
serverValidationManager.executeAndClearAllSubscriptions();
}
@@ -1187,7 +1206,7 @@ function contentEditingHelper(fileManager, $q, $location, $routeParams, notifica
}
if (!this.redirectToCreatedContent(args.redirectId ? args.redirectId : args.savedContent.id)) {
-
+
//we are not redirecting because this is not new content, it is existing content. In this case
// we need to detect what properties have changed and re-bind them with the server data.
//call the callback
@@ -1205,14 +1224,14 @@ function contentEditingHelper(fileManager, $q, $location, $routeParams, notifica
*
* @description
* Changes the location to be editing the newly created content after create was successful.
- * We need to decide if we need to redirect to edito mode or if we will remain in create mode.
+ * We need to decide if we need to redirect to edito mode or if we will remain in create mode.
* We will only need to maintain create mode if we have not fulfilled the basic requirements for creating an entity which is at least having a name and ID
*/
redirectToCreatedContent: function (id, modelState) {
//only continue if we are currently in create mode and if there is no 'Name' modelstate errors
// since we need at least a name to create content.
- if ($routeParams.create && (id > 0 && (!modelState || !modelState["Name"]))) {
+ if ($routeParams.create && (isValidIdentifier(id) && (!modelState || !modelState["Name"]))) {
//need to change the location to not be in 'create' mode. Currently the route will be something like:
// /belle/#/content/edit/1234?doctype=newsArticle&create=true
@@ -1221,7 +1240,7 @@ function contentEditingHelper(fileManager, $q, $location, $routeParams, notifica
//clear the query strings
$location.search("");
-
+
//change to new path
$location.path("/" + $routeParams.section + "/" + $routeParams.tree + "/" + $routeParams.method + "/" + id);
//don't add a browser history for this
@@ -1233,6 +1252,7 @@ function contentEditingHelper(fileManager, $q, $location, $routeParams, notifica
};
}
angular.module('umbraco.services').factory('contentEditingHelper', contentEditingHelper);
+
/**
* @ngdoc service
* @name umbraco.services.cropperHelper
@@ -7211,7 +7231,7 @@ angular.module('umbraco.services')
}
setCurrentUser(data);
- currentUser.avatar = '//www.gravatar.com/avatar/' + data.emailHash + '?s=40&d=404';
+ currentUser.avatar = 'https://www.gravatar.com/avatar/' + data.emailHash + '?s=40&d=404';
deferred.resolve(currentUser);
});
diff --git a/OurUmbraco.Site/umbraco/lib/umbraco/LegacyUmbClientMgr.js b/OurUmbraco.Site/umbraco/lib/umbraco/LegacyUmbClientMgr.js
index d0264709..bde879aa 100644
--- a/OurUmbraco.Site/umbraco/lib/umbraco/LegacyUmbClientMgr.js
+++ b/OurUmbraco.Site/umbraco/lib/umbraco/LegacyUmbClientMgr.js
@@ -384,6 +384,11 @@ Umbraco.Sys.registerNamespace("Umbraco.Application");
//just call the native dialog close() method to remove the dialog
lastModal.close();
+
+ //if it's the last one close them all
+ if (this._modal.length == 0) {
+ getRootScope().$emit("app.closeDialogs", undefined);
+ }
}
else {
//instead of calling just the dialog service we funnel it through the global
diff --git a/OurUmbraco.Site/umbraco/plugins/umbracoContour/Views/Web.config b/OurUmbraco.Site/umbraco/plugins/umbracoContour/Views/Web.config
index a4def2a3..b26d3073 100644
--- a/OurUmbraco.Site/umbraco/plugins/umbracoContour/Views/Web.config
+++ b/OurUmbraco.Site/umbraco/plugins/umbracoContour/Views/Web.config
@@ -1,4 +1,4 @@
-
+
diff --git a/OurUmbraco.Site/umbraco/settings/scripts/editScript.aspx b/OurUmbraco.Site/umbraco/settings/scripts/editScript.aspx
index e68922bd..be0d68d3 100644
--- a/OurUmbraco.Site/umbraco/settings/scripts/editScript.aspx
+++ b/OurUmbraco.Site/umbraco/settings/scripts/editScript.aspx
@@ -1,6 +1,7 @@
<%@ Page Language="C#" MasterPageFile="../../masterpages/umbracoPage.Master" AutoEventWireup="true"
CodeBehind="editScript.aspx.cs" Inherits="umbraco.cms.presentation.settings.scripts.editScript"
ValidateRequest="False" %>
+<%@ Import Namespace="Umbraco.Core" %>
<%@ Register TagPrefix="cc1" Namespace="umbraco.uicontrols" Assembly="controls" %>
<%@ Register TagPrefix="umb" Namespace="ClientDependency.Core.Controls" Assembly="ClientDependency.Core" %>
@@ -21,13 +22,10 @@
nameTxtBox: $('#<%= NameTxt.ClientID %>'),
originalFileName: '<%= NameTxt.Text %>',
saveButton: $("#<%= ((Control)SaveButton).ClientID %>"),
+ restServiceLocation: "<%= Url.GetSaveFileServicePath() %>",
editorSourceElement: $('#<%= editorSource.ClientID %>'),
- text: {
- fileErrorHeader: '<%= HttpUtility.JavaScriptStringEncode(umbraco.ui.Text("speechBubbles", "fileErrorHeader")) %>',
- fileSavedHeader: '<%= HttpUtility.JavaScriptStringEncode(umbraco.ui.Text("speechBubbles", "fileSavedHeader")) %>',
- fileSavedText: '',
- fileErrorText: '<%= HttpUtility.JavaScriptStringEncode(umbraco.ui.Text("speechBubbles", "fileErrorText")) %>',
- }
+ treeSyncPath: "<%= ScriptTreeSyncPath %>",
+ lttPathElement: $('#<%= lttPath.ClientID %>')
});
editor.init();
diff --git a/OurUmbraco.Site/umbraco/settings/stylesheet/editstylesheet.aspx b/OurUmbraco.Site/umbraco/settings/stylesheet/editstylesheet.aspx
index 55b243c9..2f40b04a 100644
--- a/OurUmbraco.Site/umbraco/settings/stylesheet/editstylesheet.aspx
+++ b/OurUmbraco.Site/umbraco/settings/stylesheet/editstylesheet.aspx
@@ -1,5 +1,6 @@
<%@ Page Language="c#" MasterPageFile="../../masterpages/umbracoPage.Master" CodeBehind="editstylesheet.aspx.cs" AutoEventWireup="True"
Inherits="Umbraco.Web.UI.Umbraco.Settings.Stylesheet.EditStyleSheet" ValidateRequest="False" %>
+<%@ Import Namespace="Umbraco.Core" %>
<%@ Register TagPrefix="cc1" Namespace="umbraco.uicontrols" Assembly="controls" %>
<%@ Register TagPrefix="cdf" Namespace="ClientDependency.Core.Controls" Assembly="ClientDependency.Core" %>
@@ -13,16 +14,12 @@
$(document).ready(function () {
var editor = new Umbraco.Editors.EditStyleSheet({
nameTxtBox: $('#<%= NameTxt.ClientID %>'),
- originalFileName: '<%= NameTxt.Text.Replace("\\", "\\\\") %>',
- cssId: '<%= Request.QueryString["id"] %>',
+ originalFileName: '<%= NameTxt.Text %>',
saveButton: $("#<%= ((Control)SaveButton).ClientID %>"),
editorSourceElement: $('#<%= editorSource.ClientID %>'),
- text: {
- cssErrorHeader: '<%= HttpUtility.JavaScriptStringEncode(umbraco.ui.Text("speechBubbles", "cssErrorHeader")) %>',
- cssSavedHeader: '<%= HttpUtility.JavaScriptStringEncode(umbraco.ui.Text("speechBubbles", "cssSavedHeader")) %>',
- cssSavedText: '<%= HttpUtility.JavaScriptStringEncode(umbraco.ui.Text("speechBubbles", "cssSavedText")) %>',
- cssErrorText: 'Please make sure that you have permissions set correctly',
- }
+ restServiceLocation: "<%= Url.GetSaveFileServicePath() %>",
+ treeSyncPath: "<%= TreeSyncPath %>",
+ lttPathElement: $('#<%= lttPath.ClientID %>')
});
editor.init();
diff --git a/OurUmbraco.Site/umbraco/settings/views/EditView.aspx b/OurUmbraco.Site/umbraco/settings/views/EditView.aspx
index ba464262..ca68fc4b 100644
--- a/OurUmbraco.Site/umbraco/settings/views/EditView.aspx
+++ b/OurUmbraco.Site/umbraco/settings/views/EditView.aspx
@@ -66,6 +66,7 @@
+
diff --git a/OurUmbraco.Site/umbraco_client/Editors/EditScript.js b/OurUmbraco.Site/umbraco_client/Editors/EditScript.js
index 33117360..54ca548e 100644
--- a/OurUmbraco.Site/umbraco_client/Editors/EditScript.js
+++ b/OurUmbraco.Site/umbraco_client/Editors/EditScript.js
@@ -30,63 +30,87 @@
doSubmit: function () {
var self = this;
- var fileName = this._opts.nameTxtBox.val();
- var codeVal = this._opts.editorSourceElement.val();
+ var filename = this._opts.nameTxtBox.val();
+ var codeval = this._opts.editorSourceElement.val();
//if CodeMirror is not defined, then the code editor is disabled.
if (typeof (CodeMirror) != "undefined") {
- codeVal = UmbEditor.GetCode();
+ codeval = UmbEditor.GetCode();
}
- umbraco.presentation.webservices.codeEditorSave.SaveScript(
- fileName, self._opts.originalFileName, codeVal,
- function (t) { self.submitSucces(t); },
- function (t) { self.submitFailure(t); });
+ this.save(
+ filename,
+ self._opts.originalFileName,
+ codeval);
},
- submitSucces: function(t) {
+ save: function (filename, oldName, contents) {
+ var self = this;
- if (t != 'true') {
- top.UmbSpeechBubble.ShowMessage('error', unescape(this._opts.text.fileErrorHeader), unescape(this._opts.text.fileErrorText));
+ $.post(self._opts.restServiceLocation + "SaveScript",
+ JSON.stringify({
+ filename: filename,
+ oldName: oldName,
+ contents: contents
+ }),
+ function (e) {
+ if (e.success) {
+ self.submitSuccess(e);
+ } else {
+ self.submitFailure(e.message, e.header);
+ }
+ });
+ },
+
+ submitSuccess: function (args) {
+ var msg = args.message;
+ var header = args.header;
+ var path = this._opts.treeSyncPath;
+ var pathChanged = false;
+ if (args.path) {
+ if (path != args.path) {
+ pathChanged = true;
+ }
+ path = args.path;
+ }
+ if (args.contents) {
+ UmbEditor.SetCode(args.contents);
}
- var newFilePath = this._opts.nameTxtBox.val();
-
- //if the filename changes, we need to redirect since the file name is used in the url
- if (this._opts.originalFileName != newFilePath) {
- var newLocation = window.location.pathname + "?" + "&file=" + newFilePath;
+ UmbClientMgr.mainTree().setActiveTreeType("scripts");
+ if (pathChanged) {
+ // no! file is used in url so we need to redirect
+ //UmbClientMgr.mainTree().moveNode(this._opts.originalFileName, path);
+ //this._opts.treeSyncPath = args.path;
+ //this._opts.lttPathElement.prop("href", args.url).html(args.url);
- UmbClientMgr.contentFrame(newLocation);
+ var qs = window.location.search;
+ if (qs.startsWith("?")) qs = qs.substring("?".length);
+ var qp1 = qs.split("&");
+ var qp2 = [];
+ for (var i = 0; i < qp1.length; i++)
+ if (!qp1[i].startsWith("file="))
+ qp2.push(qp1[i]);
- //we need to do this after we navigate otherwise the navigation will wait unti lthe message timeout is done!
- top.UmbSpeechBubble.ShowMessage('save', unescape(this._opts.text.fileSavedHeader), unescape(this._opts.text.fileSavedText));
+ var location = window.location.pathname + "?" + qp2.join("&") + "&file=" + args.name;
+ UmbClientMgr.contentFrame(location);
+
+ // need to do it after we navigate otherwise the navigation waits until the message timeout is done
+ top.UmbSpeechBubble.ShowMessage("save", header, msg);
}
else {
-
- top.UmbSpeechBubble.ShowMessage('save', unescape(this._opts.text.fileSavedHeader), unescape(this._opts.text.fileSavedText));
- UmbClientMgr.mainTree().setActiveTreeType('scripts');
-
- //we need to create a list of ids for each folder/file. Each folder/file's id is it's full path so we need to build each one.
- var paths = [];
- var parts = this._opts.originalFileName.split('/');
- for (var i = 0;i < parts.length;i++) {
- if (paths.length > 0) {
- paths.push(paths[i - 1] + "/" + parts[i]);
- }
- else {
- paths.push(parts[i]);
- }
- }
-
- //we need to pass in the newId parameter so it knows which node to resync after retreival from the server
- UmbClientMgr.mainTree().syncTree("-1,init," + paths.join(','), true, null, newFilePath);
- //set the original file path to the new one
- this._opts.originalFileName = newFilePath;
+ top.UmbSpeechBubble.ShowMessage("save", header, msg);
+ this._opts.lttPathElement.prop("href", args.url).html(args.url);
+ this._opts.originalFileName = args.name;
+ this._opts.treeSyncPath = args.path;
+ UmbClientMgr.mainTree().syncTree(path, true);
}
-
+
+ //this._opts.lttPathElement.prop("href", args.url).html(args.url);
+ //this._opts.originalFileName = args.name;
},
- submitFailure: function(t) {
- top.UmbSpeechBubble.ShowMessage('error', unescape(this._opts.text.fileErrorHeader), unescape(this._opts.text.fileErrorText));
+ submitFailure: function(err, header) {
+ top.UmbSpeechBubble.ShowMessage('error', header, err);
}
});
})(jQuery);
\ No newline at end of file
diff --git a/OurUmbraco.Site/umbraco_client/Editors/EditStyleSheet.js b/OurUmbraco.Site/umbraco_client/Editors/EditStyleSheet.js
index 25951cf8..8fb2849a 100644
--- a/OurUmbraco.Site/umbraco_client/Editors/EditStyleSheet.js
+++ b/OurUmbraco.Site/umbraco_client/Editors/EditStyleSheet.js
@@ -30,37 +30,80 @@
doSubmit: function() {
var self = this;
- var fileName = this._opts.nameTxtBox.val();
- var codeVal = this._opts.editorSourceElement.val();
+ var filename = this._opts.nameTxtBox.val();
+ var codeval = this._opts.editorSourceElement.val();
//if CodeMirror is not defined, then the code editor is disabled.
if (typeof(CodeMirror) != "undefined") {
- codeVal = UmbEditor.GetCode();
+ codeval = UmbEditor.GetCode();
}
- umbraco.presentation.webservices.codeEditorSave.SaveCss(
- fileName, self._opts.originalFileName, codeVal, 0,
- function (t) { self.submitSucces(t, fileName); },
- function(t) { self.submitFailure(t); });
-
+ this.save(
+ filename,
+ self._opts.originalFileName,
+ codeval);
},
- submitSucces: function (t, fileName) {
- if (t != 'true') {
- top.UmbSpeechBubble.ShowMessage('error', unescape(this._opts.text.cssErrorHeader), unescape(this._opts.text.cssErrorText));
+ save: function (filename, oldName, contents) {
+ var self = this;
+
+ $.post(self._opts.restServiceLocation + "SaveStylesheet",
+ JSON.stringify({
+ filename: filename,
+ oldName: oldName,
+ contents: contents
+ }),
+ function (e) {
+ if (e.success) {
+ self.submitSuccess(e);
+ } else {
+ self.submitFailure(e.message, e.header);
+ }
+ });
+ },
+
+ submitSuccess: function (args) {
+ var msg = args.message;
+ var header = args.header;
+ var path = this._opts.treeSyncPath;
+ var pathChanged = false;
+ if (args.path) {
+ if (path != args.path) {
+ pathChanged = true;
+ }
+ path = args.path;
+ }
+ if (args.contents) {
+ UmbEditor.SetCode(args.contents);
+ }
+
+ UmbClientMgr.mainTree().setActiveTreeType("stylesheets");
+ if (pathChanged) {
+ // file is used in url so we need to redirect
+ var qs = window.location.search;
+ if (qs.startsWith("?")) qs = qs.substring("?".length);
+ var qp1 = qs.split("&");
+ var qp2 = [];
+ for (var i = 0; i < qp1.length; i++)
+ if (!qp1[i].startsWith("id="))
+ qp2.push(qp1[i]);
+
+ var location = window.location.pathname + "?" + qp2.join("&") + "&id=" + args.name;
+ UmbClientMgr.contentFrame(location);
+
+ // need to do it after we navigate otherwise the navigation waits until the message timeout is done
+ top.UmbSpeechBubble.ShowMessage("save", header, msg);
}
else {
- top.UmbSpeechBubble.ShowMessage('save', unescape(this._opts.text.cssSavedHeader), unescape(this._opts.text.cssSavedText));
+ top.UmbSpeechBubble.ShowMessage("save", header, msg);
+ this._opts.lttPathElement.prop("href", args.url).html(args.url);
+ this._opts.originalFileName = args.name;
+ this._opts.treeSyncPath = args.path;
+ UmbClientMgr.mainTree().syncTree(path, true);
}
-
- UmbClientMgr.mainTree().setActiveTreeType('stylesheets');
- UmbClientMgr.mainTree().syncTree("-1,init," + fileName, true);
-
- //update the originalFileName prop
- this._opts.originalFileName = this._opts.nameTxtBox.val();
},
- submitFailure: function(t) {
- top.UmbSpeechBubble.ShowMessage('error', unescape(this._opts.text.cssErrorHeader), unescape(this._opts.text.cssErrorText));
+ submitFailure: function(err, header) {
+ top.UmbSpeechBubble.ShowMessage('error', header, err);
}
});
})(jQuery);
\ No newline at end of file
diff --git a/OurUmbraco.Site/umbraco_client/Editors/EditView.js b/OurUmbraco.Site/umbraco_client/Editors/EditView.js
index 554d0baf..28398d08 100644
--- a/OurUmbraco.Site/umbraco_client/Editors/EditView.js
+++ b/OurUmbraco.Site/umbraco_client/Editors/EditView.js
@@ -8,24 +8,6 @@
//private methods/variables
_opts: null,
- _updateNewFileProperties: function(filePath) {
- /// Updates the current treeSyncPath and original file name to have the new file name
-
- //update the originalFileName prop
- this._opts.originalFileName = filePath;
-
- //re-create the new path
- var subPath = this._opts.treeSyncPath.split(",");
- //remove the last element
- subPath.pop();
- //add the new element
- var parts = filePath.split("/");
- //remove the first bit which will either be "Partials" or "MacroPartials"
- parts.shift();
- subPath.push(parts.join("/"));
- this._opts.treeSyncPath = subPath.join();
- },
-
// Constructor
constructor: function (opts) {
// Merge options with default
@@ -207,8 +189,8 @@
top.UmbSpeechBubble.ShowMessage('save', header, msg);
- //then we need to update our current tree sync path to represent the new one
- this._updateNewFileProperties(newFilePath);
+ this._opts.originalFileName = args.name;
+ this._opts.treeSyncPath = args.path;
UmbClientMgr.mainTree().syncTree(path, true, null, newFilePath.split("/")[1]);
}
diff --git a/OurUmbraco/OurUmbraco.csproj b/OurUmbraco/OurUmbraco.csproj
index e4a10153..652fd76e 100644
--- a/OurUmbraco/OurUmbraco.csproj
+++ b/OurUmbraco/OurUmbraco.csproj
@@ -38,8 +38,8 @@
..\packages\AutoMapper.3.0.0\lib\net40\AutoMapper.Net4.dll
True
-
- ..\packages\UmbracoCms.Core.7.3.0-RC\lib\businesslogic.dll
+
+ ..\packages\UmbracoCms.Core.7.3.0\lib\businesslogic.dll
True
@@ -50,12 +50,12 @@
..\packages\ClientDependency-Mvc5.1.8.0.0\lib\net45\ClientDependency.Core.Mvc.dll
True
-
- ..\packages\UmbracoCms.Core.7.3.0-RC\lib\cms.dll
+
+ ..\packages\UmbracoCms.Core.7.3.0\lib\cms.dll
True
-
- ..\packages\UmbracoCms.Core.7.3.0-RC\lib\controls.dll
+
+ ..\packages\UmbracoCms.Core.7.3.0\lib\controls.dll
True
@@ -78,16 +78,16 @@
..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll
True
-
- ..\packages\ImageProcessor.2.2.7.0\lib\net45\ImageProcessor.dll
+
+ ..\packages\ImageProcessor.2.3.0.0\lib\net45\ImageProcessor.dll
True
-
- ..\packages\ImageProcessor.Web.4.3.5.0\lib\net45\ImageProcessor.Web.dll
+
+ ..\packages\ImageProcessor.Web.4.4.0.0\lib\net45\ImageProcessor.Web.dll
True
-
- ..\packages\UmbracoCms.Core.7.3.0-RC\lib\interfaces.dll
+
+ ..\packages\UmbracoCms.Core.7.3.0\lib\interfaces.dll
True
@@ -95,7 +95,7 @@
True
- ..\packages\UmbracoCms.Core.7.3.0-RC\lib\log4net.dll
+ ..\packages\UmbracoCms.Core.7.3.0\lib\log4net.dll
True
@@ -111,7 +111,7 @@
True
- ..\packages\UmbracoCms.Core.7.3.0-RC\lib\Microsoft.ApplicationBlocks.Data.dll
+ ..\packages\UmbracoCms.Core.7.3.0\lib\Microsoft.ApplicationBlocks.Data.dll
True
@@ -174,8 +174,8 @@
..\packages\semver.1.1.2\lib\net451\Semver.dll
True
-
- ..\packages\UmbracoCms.Core.7.3.0-RC\lib\SQLCE4Umbraco.dll
+
+ ..\packages\UmbracoCms.Core.7.3.0\lib\SQLCE4Umbraco.dll
True
@@ -184,11 +184,11 @@
- ..\packages\UmbracoCms.Core.7.3.0-RC\lib\System.Data.SqlServerCe.dll
+ ..\packages\UmbracoCms.Core.7.3.0\lib\System.Data.SqlServerCe.dll
True
- ..\packages\UmbracoCms.Core.7.3.0-RC\lib\System.Data.SqlServerCe.Entity.dll
+ ..\packages\UmbracoCms.Core.7.3.0\lib\System.Data.SqlServerCe.Entity.dll
True
@@ -249,43 +249,43 @@
- ..\packages\UmbracoCms.Core.7.3.0-RC\lib\TidyNet.dll
+ ..\packages\UmbracoCms.Core.7.3.0\lib\TidyNet.dll
True
-
- ..\packages\UmbracoCms.Core.7.3.0-RC\lib\umbraco.dll
+
+ ..\packages\UmbracoCms.Core.7.3.0\lib\umbraco.dll
True
-
- ..\packages\UmbracoCms.Core.7.3.0-RC\lib\Umbraco.Core.dll
+
+ ..\packages\UmbracoCms.Core.7.3.0\lib\Umbraco.Core.dll
True
-
- ..\packages\UmbracoCms.Core.7.3.0-RC\lib\umbraco.DataLayer.dll
+
+ ..\packages\UmbracoCms.Core.7.3.0\lib\umbraco.DataLayer.dll
True
-
- ..\packages\UmbracoCms.Core.7.3.0-RC\lib\umbraco.editorControls.dll
+
+ ..\packages\UmbracoCms.Core.7.3.0\lib\umbraco.editorControls.dll
True
-
- ..\packages\UmbracoCms.Core.7.3.0-RC\lib\umbraco.MacroEngines.dll
+
+ ..\packages\UmbracoCms.Core.7.3.0\lib\umbraco.MacroEngines.dll
True
-
- ..\packages\UmbracoCms.Core.7.3.0-RC\lib\umbraco.providers.dll
+
+ ..\packages\UmbracoCms.Core.7.3.0\lib\umbraco.providers.dll
True
-
- ..\packages\UmbracoCms.Core.7.3.0-RC\lib\Umbraco.Web.UI.dll
+
+ ..\packages\UmbracoCms.Core.7.3.0\lib\Umbraco.Web.UI.dll
True
-
- ..\packages\UmbracoCms.Core.7.3.0-RC\lib\UmbracoExamine.dll
+
+ ..\packages\UmbracoCms.Core.7.3.0\lib\UmbracoExamine.dll
True
- ..\packages\UmbracoCms.Core.7.3.0-RC\lib\UrlRewritingNet.UrlRewriter.dll
+ ..\packages\UmbracoCms.Core.7.3.0\lib\UrlRewritingNet.UrlRewriter.dll
True
diff --git a/OurUmbraco/packages.config b/OurUmbraco/packages.config
index 8f7cf9df..f5d456c4 100644
--- a/OurUmbraco/packages.config
+++ b/OurUmbraco/packages.config
@@ -7,8 +7,8 @@
-
-
+
+
@@ -16,7 +16,7 @@
-
+
@@ -42,7 +42,7 @@
-
+
\ No newline at end of file
|