| + | ||||
|
+
We'd love to hear how this package has helped you and how it can be improved. Get in touch on the project website or via twitter
We'd love to hear how this package has helped you and how it can be improved. Get in touch on the project website or via twitter
Umbraco the the leading ASP.NET open source CMS, under pinning over 150,000 websites. Our Certified Developers are experts in developing high performance and feature rich websites.
We'd love to hear how this package has helped you and how it can be improved. Get in touch on the project website or via twitter
We'd love to hear how this package has helped you and how it can be improved. Get in touch on the project website or via twitter
++@param {array} colors (+ +
attribute): The array of colors.
+@param {string} colors (attribute): The array of colors.
+@param {string} selectedColor (attribute): The selected color.
+@param {string} size (attribute): The size (s, m).
+@param {function} onSelect (expression): Callback function when the item is selected.
+**/
+
+(function () {
+ 'use strict';
+
+ function ColorSwatchesDirective() {
+
+ function link(scope, el, attr, ctrl) {
+
+ scope.setColor = function (color) {
+ //scope.selectedColor({color: color });
+ scope.selectedColor = color;
+
+ if (scope.onSelect) {
+ scope.onSelect(color);
+ }
+ };
+ }
+
+ var directive = {
+ restrict: 'E',
+ replace: true,
+ transclude: true,
+ templateUrl: 'views/components/umb-color-swatches.html',
+ scope: {
+ colors: '=?',
+ size: '@',
+ selectedColor: '=',
+ onSelect: '&'
+ },
+ link: link
+ };
+
+ return directive;
+
+ }
+
+ angular.module('umbraco.directives').directive('umbColorSwatches', ColorSwatchesDirective);
+
+})();
diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/umbgridselector.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/umbgridselector.directive.js
index de1c0ca936..dfd1e1184d 100644
--- a/src/Umbraco.Web.UI.Client/src/common/directives/components/umbgridselector.directive.js
+++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/umbgridselector.directive.js
@@ -1,7 +1,7 @@
-(function() {
+(function () {
'use strict';
- function GridSelector(overlayService) {
+ function GridSelector($location, overlayService) {
function link(scope, el, attr, ctrl) {
@@ -11,18 +11,18 @@
scope.itemLabel = "";
// set default item name
- if(!scope.itemName){
+ if (!scope.itemName) {
scope.itemLabel = "item";
} else {
scope.itemLabel = scope.itemName;
}
- scope.removeItem = function(selectedItem) {
+ scope.removeItem = function (selectedItem) {
var selectedItemIndex = scope.selectedItems.indexOf(selectedItem);
scope.selectedItems.splice(selectedItemIndex, 1);
};
- scope.removeDefaultItem = function() {
+ scope.removeDefaultItem = function () {
// it will be the last item so we can clear the array
scope.selectedItems = [];
@@ -32,7 +32,7 @@
};
- scope.openItemPicker = function($event){
+ scope.openItemPicker = function ($event) {
var dialogModel = {
view: "itempicker",
title: "Choose " + scope.itemLabel,
@@ -40,10 +40,10 @@
selectedItems: scope.selectedItems,
position: "target",
event: $event,
- submit: function(model) {
+ submit: function (model) {
scope.selectedItems.push(model.selectedItem);
// if no default item - set item as default
- if(scope.defaultItem === null) {
+ if (scope.defaultItem === null) {
scope.setAsDefaultItem(model.selectedItem);
}
overlayService.close();
@@ -55,7 +55,12 @@
overlayService.open(dialogModel);
};
- scope.setAsDefaultItem = function(selectedItem) {
+ scope.openTemplate = function (selectedItem) {
+ var url = "/settings/templates/edit/" + selectedItem.id;
+ $location.url(url);
+ }
+
+ scope.setAsDefaultItem = function (selectedItem) {
// clear default item
scope.defaultItem = {};
@@ -66,69 +71,69 @@
function updatePlaceholders() {
- // update default item
- if(scope.defaultItem !== null && scope.defaultItem.placeholder) {
+ // update default item
+ if (scope.defaultItem !== null && scope.defaultItem.placeholder) {
- scope.defaultItem.name = scope.name;
+ scope.defaultItem.name = scope.name;
- if(scope.alias !== null && scope.alias !== undefined) {
- scope.defaultItem.alias = scope.alias;
- }
-
- }
-
- // update selected items
- angular.forEach(scope.selectedItems, function(selectedItem) {
- if(selectedItem.placeholder) {
-
- selectedItem.name = scope.name;
-
- if(scope.alias !== null && scope.alias !== undefined) {
- selectedItem.alias = scope.alias;
- }
+ if (scope.alias !== null && scope.alias !== undefined) {
+ scope.defaultItem.alias = scope.alias;
+ }
}
- });
- // update availableItems
- angular.forEach(scope.availableItems, function(availableItem) {
- if(availableItem.placeholder) {
+ // update selected items
+ angular.forEach(scope.selectedItems, function (selectedItem) {
+ if (selectedItem.placeholder) {
- availableItem.name = scope.name;
+ selectedItem.name = scope.name;
- if(scope.alias !== null && scope.alias !== undefined) {
- availableItem.alias = scope.alias;
- }
+ if (scope.alias !== null && scope.alias !== undefined) {
+ selectedItem.alias = scope.alias;
+ }
- }
- });
+ }
+ });
+
+ // update availableItems
+ angular.forEach(scope.availableItems, function (availableItem) {
+ if (availableItem.placeholder) {
+
+ availableItem.name = scope.name;
+
+ if (scope.alias !== null && scope.alias !== undefined) {
+ availableItem.alias = scope.alias;
+ }
+
+ }
+ });
}
function activate() {
- // add watchers for updating placeholde name and alias
- if(scope.updatePlaceholder) {
- eventBindings.push(scope.$watch('name', function(newValue, oldValue){
- updatePlaceholders();
- }));
+ // add watchers for updating placeholde name and alias
+ if (scope.updatePlaceholder) {
+ eventBindings.push(scope.$watch('name', function (newValue, oldValue) {
+ updatePlaceholders();
+ }));
- eventBindings.push(scope.$watch('alias', function(newValue, oldValue){
- updatePlaceholders();
- }));
- }
+ eventBindings.push(scope.$watch('alias', function (newValue, oldValue) {
+ updatePlaceholders();
+ }));
+ }
}
activate();
// clean up
- scope.$on('$destroy', function(){
+ scope.$on('$destroy', function () {
- // clear watchers
- for(var e in eventBindings) {
- eventBindings[e]();
- }
+ // clear watchers
+ for (var e in eventBindings) {
+ eventBindings[e]();
+ }
});
@@ -139,13 +144,13 @@
replace: true,
templateUrl: 'views/components/umb-grid-selector.html',
scope: {
- name: "=",
- alias: "=",
- selectedItems: '=',
- availableItems: "=",
- defaultItem: "=",
- itemName: "@",
- updatePlaceholder: "="
+ name: "=",
+ alias: "=",
+ selectedItems: '=',
+ availableItems: "=",
+ defaultItem: "=",
+ itemName: "@",
+ updatePlaceholder: "="
},
link: link
};
diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/umbnodepreview.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/umbnodepreview.directive.js
index 21714d172c..9f1f7a0d2e 100644
--- a/src/Umbraco.Web.UI.Client/src/common/directives/components/umbnodepreview.directive.js
+++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/umbnodepreview.directive.js
@@ -88,6 +88,9 @@
@param {function} onRemove (expression): Callback function when the remove button is clicked.
@param {function} onOpen (expression): Callback function when the open button is clicked.
@param {function} onEdit (expression): Callback function when the edit button is clicked (Added in version 7.7.0).
+@param {string} openUrl (binding): Fallback URL for onOpen (Added in version 7.12.0).
+@param {string} editUrl (binding): Fallback URL for onEdit (Added in version 7.12.0).
+@param {string} removeUrl (binding): Fallback URL for onRemove (Added in version 7.12.0).
**/
(function () {
@@ -122,7 +125,10 @@
allowEdit: "=?",
onOpen: "&?",
onRemove: "&?",
- onEdit: "&?"
+ onEdit: "&?",
+ openUrl: '=?',
+ editUrl: '=?',
+ removeUrl: '=?'
},
link: link
};
@@ -133,4 +139,4 @@
angular.module('umbraco.directives').directive('umbNodePreview', NodePreviewDirective);
-})();
\ No newline at end of file
+})();
diff --git a/src/Umbraco.Web.UI.Client/src/common/filters/nestedcontent.filter.js b/src/Umbraco.Web.UI.Client/src/common/filters/nestedcontent.filter.js
index 76e4e4a822..8c23094bbf 100644
--- a/src/Umbraco.Web.UI.Client/src/common/filters/nestedcontent.filter.js
+++ b/src/Umbraco.Web.UI.Client/src/common/filters/nestedcontent.filter.js
@@ -9,6 +9,13 @@ var ncNodeNameCache = {
angular.module("umbraco.filters").filter("ncNodeName", function (editorState, entityResource) {
+ function formatLabel(firstNodeName, totalNodes) {
+ return totalNodes <= 1
+ ? firstNodeName
+ // If there is more than one item selected, append the additional number of items selected to hint that
+ : firstNodeName + " (+" + (totalNodes - 1) + ")";
+ }
+
return function (input) {
// Check we have a value at all
@@ -25,23 +32,38 @@ angular.module("umbraco.filters").filter("ncNodeName", function (editorState, en
ncNodeNameCache.keys = {};
}
+ // MNTP values are comma separated IDs. We'll only fetch the first one for the NC header.
+ var ids = input.split(',');
+ var lookupId = ids[0];
+
// See if there is a value in the cache and use that
- if (ncNodeNameCache.keys[input]) {
- return ncNodeNameCache.keys[input];
+ if (ncNodeNameCache.keys[lookupId]) {
+ return formatLabel(ncNodeNameCache.keys[lookupId], ids.length);
}
// No value, so go fetch one
// We'll put a temp value in the cache though so we don't
// make a load of requests while we wait for a response
- ncNodeNameCache.keys[input] = "Loading...";
+ ncNodeNameCache.keys[lookupId] = "Loading...";
- entityResource.getById(input, "Document")
- .then(function (ent) {
- ncNodeNameCache.keys[input] = ent.name;
- });
+ var type = lookupId.indexOf("umb://media/") === 0
+ ? "Media"
+ : lookupId.indexOf("umb://member/") === 0
+ ? "Member"
+ : "Document";
+ entityResource.getById(lookupId, type)
+ .then(
+ function (ent) {
+ ncNodeNameCache.keys[lookupId] = ent.name;
+ }
+ );
// Return the current value for now
- return ncNodeNameCache.keys[input];
+ return formatLabel(ncNodeNameCache.keys[lookupId], ids.length);
};
-});
\ No newline at end of file
+}).filter("ncRichText", function () {
+ return function(input) {
+ return $("").html(input).text();
+ };
+});
diff --git a/src/Umbraco.Web.UI.Client/src/common/resources/contenttype.resource.js b/src/Umbraco.Web.UI.Client/src/common/resources/contenttype.resource.js
index d69777464c..cec9cf191e 100644
--- a/src/Umbraco.Web.UI.Client/src/common/resources/contenttype.resource.js
+++ b/src/Umbraco.Web.UI.Client/src/common/resources/contenttype.resource.js
@@ -3,17 +3,17 @@
* @name umbraco.resources.contentTypeResource
* @description Loads in data for content types
**/
-function contentTypeResource($q, $http, umbRequestHelper, umbDataFormatter) {
+function contentTypeResource($q, $http, umbRequestHelper, umbDataFormatter, localizationService, notificationsService) {
return {
getCount: function () {
return umbRequestHelper.resourcePromise(
- $http.get(
- umbRequestHelper.getApiUrl(
- "contentTypeApiBaseUrl",
- "GetCount")),
- 'Failed to retrieve count');
+ $http.get(
+ umbRequestHelper.getApiUrl(
+ "contentTypeApiBaseUrl",
+ "GetCount")),
+ 'Failed to retrieve count');
},
getAvailableCompositeContentTypes: function (contentTypeId, filterContentTypes, filterPropertyTypes) {
@@ -31,32 +31,32 @@ function contentTypeResource($q, $http, umbRequestHelper, umbDataFormatter) {
};
return umbRequestHelper.resourcePromise(
- $http.post(
- umbRequestHelper.getApiUrl(
- "contentTypeApiBaseUrl",
- "GetAvailableCompositeContentTypes"),
- query),
- 'Failed to retrieve data for content type id ' + contentTypeId);
+ $http.post(
+ umbRequestHelper.getApiUrl(
+ "contentTypeApiBaseUrl",
+ "GetAvailableCompositeContentTypes"),
+ query),
+ 'Failed to retrieve data for content type id ' + contentTypeId);
},
- /**
- * @ngdoc method
- * @name umbraco.resources.contentTypeResource#getWhereCompositionIsUsedInContentTypes
- * @methodOf umbraco.resources.contentTypeResource
- *
- * @description
- * Returns a list of content types which use a specific composition with a given id
- *
- * ##usage
- *
- * contentTypeResource.getWhereCompositionIsUsedInContentTypes(1234)
- * .then(function(contentTypeList) {
- * console.log(contentTypeList);
- * });
- *
- * @param {Int} contentTypeId id of the composition content type to retrieve the list of the content types where it has been used
- * @returns {Promise} resourcePromise object.
- *
- */
+ /**
+ * @ngdoc method
+ * @name umbraco.resources.contentTypeResource#getWhereCompositionIsUsedInContentTypes
+ * @methodOf umbraco.resources.contentTypeResource
+ *
+ * @description
+ * Returns a list of content types which use a specific composition with a given id
+ *
+ * ##usage
+ *
+ * contentTypeResource.getWhereCompositionIsUsedInContentTypes(1234)
+ * .then(function(contentTypeList) {
+ * console.log(contentTypeList);
+ * });
+ *
+ * @param {Int} contentTypeId id of the composition content type to retrieve the list of the content types where it has been used
+ * @returns {Promise} resourcePromise object.
+ *
+ */
getWhereCompositionIsUsedInContentTypes: function (contentTypeId) {
var query = {
contentTypeId: contentTypeId
@@ -92,12 +92,12 @@ function contentTypeResource($q, $http, umbRequestHelper, umbDataFormatter) {
getAllowedTypes: function (contentTypeId) {
return umbRequestHelper.resourcePromise(
- $http.get(
- umbRequestHelper.getApiUrl(
- "contentTypeApiBaseUrl",
- "GetAllowedChildren",
- [{ contentId: contentTypeId }])),
- 'Failed to retrieve data for content id ' + contentTypeId);
+ $http.get(
+ umbRequestHelper.getApiUrl(
+ "contentTypeApiBaseUrl",
+ "GetAllowedChildren",
+ [{ contentId: contentTypeId }])),
+ 'Failed to retrieve data for content id ' + contentTypeId);
},
@@ -115,64 +115,64 @@ function contentTypeResource($q, $http, umbRequestHelper, umbDataFormatter) {
getAllPropertyTypeAliases: function () {
return umbRequestHelper.resourcePromise(
- $http.get(
- umbRequestHelper.getApiUrl(
- "contentTypeApiBaseUrl",
- "GetAllPropertyTypeAliases")),
- 'Failed to retrieve property type aliases');
+ $http.get(
+ umbRequestHelper.getApiUrl(
+ "contentTypeApiBaseUrl",
+ "GetAllPropertyTypeAliases")),
+ 'Failed to retrieve property type aliases');
},
getAllStandardFields: function () {
return umbRequestHelper.resourcePromise(
- $http.get(
- umbRequestHelper.getApiUrl(
- "contentTypeApiBaseUrl",
- "GetAllStandardFields")),
- 'Failed to retrieve standard fields');
+ $http.get(
+ umbRequestHelper.getApiUrl(
+ "contentTypeApiBaseUrl",
+ "GetAllStandardFields")),
+ 'Failed to retrieve standard fields');
},
- getPropertyTypeScaffold : function (id) {
- return umbRequestHelper.resourcePromise(
- $http.get(
- umbRequestHelper.getApiUrl(
- "contentTypeApiBaseUrl",
- "GetPropertyTypeScaffold",
- [{ id: id }])),
- 'Failed to retrieve property type scaffold');
+ getPropertyTypeScaffold: function (id) {
+ return umbRequestHelper.resourcePromise(
+ $http.get(
+ umbRequestHelper.getApiUrl(
+ "contentTypeApiBaseUrl",
+ "GetPropertyTypeScaffold",
+ [{ id: id }])),
+ 'Failed to retrieve property type scaffold');
},
getById: function (id) {
return umbRequestHelper.resourcePromise(
- $http.get(
- umbRequestHelper.getApiUrl(
- "contentTypeApiBaseUrl",
- "GetById",
- [{ id: id }])),
- 'Failed to retrieve content type');
+ $http.get(
+ umbRequestHelper.getApiUrl(
+ "contentTypeApiBaseUrl",
+ "GetById",
+ [{ id: id }])),
+ 'Failed to retrieve content type');
},
deleteById: function (id) {
return umbRequestHelper.resourcePromise(
- $http.post(
- umbRequestHelper.getApiUrl(
- "contentTypeApiBaseUrl",
- "DeleteById",
- [{ id: id }])),
- 'Failed to delete content type');
+ $http.post(
+ umbRequestHelper.getApiUrl(
+ "contentTypeApiBaseUrl",
+ "DeleteById",
+ [{ id: id }])),
+ 'Failed to delete content type');
},
deleteContainerById: function (id) {
return umbRequestHelper.resourcePromise(
- $http.post(
- umbRequestHelper.getApiUrl(
- "contentTypeApiBaseUrl",
- "DeleteContainer",
- [{ id: id }])),
- 'Failed to delete content type contaier');
+ $http.post(
+ umbRequestHelper.getApiUrl(
+ "contentTypeApiBaseUrl",
+ "DeleteContainer",
+ [{ id: id }])),
+ 'Failed to delete content type contaier');
},
/**
@@ -189,21 +189,21 @@ function contentTypeResource($q, $http, umbRequestHelper, umbDataFormatter) {
getAll: function () {
return umbRequestHelper.resourcePromise(
- $http.get(
- umbRequestHelper.getApiUrl(
- "contentTypeApiBaseUrl",
- "GetAll")),
- 'Failed to retrieve all content types');
+ $http.get(
+ umbRequestHelper.getApiUrl(
+ "contentTypeApiBaseUrl",
+ "GetAll")),
+ 'Failed to retrieve all content types');
},
getScaffold: function (parentId) {
return umbRequestHelper.resourcePromise(
- $http.get(
- umbRequestHelper.getApiUrl(
- "contentTypeApiBaseUrl",
- "GetEmpty", { parentId: parentId })),
- 'Failed to retrieve content type scaffold');
+ $http.get(
+ umbRequestHelper.getApiUrl(
+ "contentTypeApiBaseUrl",
+ "GetEmpty", { parentId: parentId })),
+ 'Failed to retrieve content type scaffold');
},
/**
@@ -223,7 +223,7 @@ function contentTypeResource($q, $http, umbRequestHelper, umbDataFormatter) {
var saveModel = umbDataFormatter.formatContentTypePostData(contentType);
return umbRequestHelper.resourcePromise(
- $http.post(umbRequestHelper.getApiUrl("contentTypeApiBaseUrl", "PostSave"), saveModel),
+ $http.post(umbRequestHelper.getApiUrl("contentTypeApiBaseUrl", "PostSave"), saveModel),
'Failed to save data for content type id ' + contentType.id);
},
@@ -270,7 +270,7 @@ function contentTypeResource($q, $http, umbRequestHelper, umbDataFormatter) {
'Failed to move content');
},
- copy: function(args) {
+ copy: function (args) {
if (!args) {
throw "args cannot be null";
}
@@ -301,12 +301,12 @@ function contentTypeResource($q, $http, umbRequestHelper, umbDataFormatter) {
createCollection: function (parentId, collectionName, collectionItemName, collectionIcon, collectionItemIcon) {
return umbRequestHelper.resourcePromise(
- $http.post(umbRequestHelper.getApiUrl("contentTypeApiBaseUrl", "PostCreateCollection", { parentId: parentId, collectionName: collectionName, collectionItemName: collectionItemName, collectionIcon: collectionIcon, collectionItemIcon: collectionItemIcon})),
+ $http.post(umbRequestHelper.getApiUrl("contentTypeApiBaseUrl", "PostCreateCollection", { parentId: parentId, collectionName: collectionName, collectionItemName: collectionItemName, collectionIcon: collectionIcon, collectionItemIcon: collectionItemIcon })),
'Failed to create collection under ' + parentId);
},
- renameContainer: function(id, name) {
+ renameContainer: function (id, name) {
return umbRequestHelper.resourcePromise(
$http.post(umbRequestHelper.getApiUrl("contentTypeApiBaseUrl",
@@ -315,8 +315,25 @@ function contentTypeResource($q, $http, umbRequestHelper, umbDataFormatter) {
"Failed to rename the folder with id " + id
);
- }
+ },
+ export: function (id) {
+ if (!id) {
+ throw "id cannot be null";
+ }
+
+ var url = umbRequestHelper.getApiUrl("contentTypeApiBaseUrl", "Export", { id: id });
+
+ return umbRequestHelper.downloadFile(url).then(function () {
+ localizationService.localize("speechBubbles_documentTypeExportedSuccess").then(function(value) {
+ notificationsService.success(value);
+ });
+ }, function (data) {
+ localizationService.localize("speechBubbles_documentTypeExportedError").then(function(value) {
+ notificationsService.error(value);
+ });
+ });
+ }
};
}
angular.module('umbraco.resources').factory('contentTypeResource', contentTypeResource);
diff --git a/src/Umbraco.Web.UI.Client/src/common/resources/media.resource.js b/src/Umbraco.Web.UI.Client/src/common/resources/media.resource.js
index 9137017128..74c2718bad 100644
--- a/src/Umbraco.Web.UI.Client/src/common/resources/media.resource.js
+++ b/src/Umbraco.Web.UI.Client/src/common/resources/media.resource.js
@@ -46,7 +46,7 @@ function mediaResource($q, $http, umbDataFormatter, umbRequestHelper) {
* .then(function() {
* $scope.complete = true;
* });
- *
+ *
* @param {Object} args arguments object
* @param {Int} args.parentId the ID of the parent node
* @param {Array} options.sortedIds array of node IDs as they should be sorted
@@ -87,9 +87,9 @@ function mediaResource($q, $http, umbDataFormatter, umbRequestHelper) {
* .then(function() {
* alert("node was moved");
* }, function(err){
- * alert("node didnt move:" + err.data.Message);
+ * alert("node didnt move:" + err.data.Message);
* });
- *
+ *
* @param {Object} args arguments object
* @param {Int} args.idd the ID of the node to move
* @param {Int} args.parentId the ID of the parent node to move to
@@ -129,12 +129,12 @@ function mediaResource($q, $http, umbDataFormatter, umbRequestHelper) {
*
* mediaResource.getById(1234)
* .then(function(media) {
- * var myMedia = media;
+ * var myMedia = media;
* alert('its here!');
* });
- *
- *
- * @param {Int} id id of media item to return
+ *
+ *
+ * @param {Int} id id of media item to return
* @returns {Promise} resourcePromise object containing the media item.
*
*/
@@ -163,9 +163,9 @@ function mediaResource($q, $http, umbDataFormatter, umbRequestHelper) {
* .then(function() {
* alert('its gone!');
* });
- *
- *
- * @param {Int} id id of media item to delete
+ *
+ *
+ * @param {Int} id id of media item to delete
* @returns {Promise} resourcePromise object.
*
*/
@@ -191,12 +191,12 @@ function mediaResource($q, $http, umbDataFormatter, umbRequestHelper) {
*
* mediaResource.getByIds( [1234,2526,28262])
* .then(function(mediaArray) {
- * var myDoc = contentArray;
+ * var myDoc = contentArray;
* alert('they are here!');
* });
- *
- *
- * @param {Array} ids ids of media items to return as an array
+ *
+ *
+ * @param {Array} ids ids of media items to return as an array
* @returns {Promise} resourcePromise object containing the media items array.
*
*/
@@ -223,28 +223,28 @@ function mediaResource($q, $http, umbDataFormatter, umbRequestHelper) {
*
* @description
* Returns a scaffold of an empty media item, given the id of the media item to place it underneath and the media type alias.
- *
+ *
* - Parent Id must be provided so umbraco knows where to store the media
- * - Media Type alias must be provided so umbraco knows which properties to put on the media scaffold
- *
+ * - Media Type alias must be provided so umbraco knows which properties to put on the media scaffold
+ *
* The scaffold is used to build editors for media that has not yet been populated with data.
- *
+ *
* ##usage
*
* mediaResource.getScaffold(1234, 'folder')
* .then(function(scaffold) {
* var myDoc = scaffold;
- * myDoc.name = "My new media item";
+ * myDoc.name = "My new media item";
*
* mediaResource.save(myDoc, true)
* .then(function(media){
* alert("Retrieved, updated and saved again");
* });
* });
- *
- *
+ *
+ *
* @param {Int} parentId id of media item to return
- * @param {String} alias mediatype alias to base the scaffold on
+ * @param {String} alias mediatype alias to base the scaffold on
* @returns {Promise} resourcePromise object containing the media scaffold.
*
*/
@@ -283,11 +283,11 @@ function mediaResource($q, $http, umbDataFormatter, umbRequestHelper) {
*
* mediaResource.getChildren(1234, {pageSize: 10, pageNumber: 2})
* .then(function(contentArray) {
- * var children = contentArray;
+ * var children = contentArray;
* alert('they are here!');
* });
- *
- *
+ *
+ *
* @param {Int} parentid id of content item to return children of
* @param {Object} options optional options object
* @param {Int} options.pageSize if paging data, number of nodes per page, default = 0
@@ -361,9 +361,9 @@ function mediaResource($q, $http, umbDataFormatter, umbRequestHelper) {
*
* @description
* Saves changes made to a media item, if the media item is new, the isNew paramater must be passed to force creation
- * if the media item needs to have files attached, they must be provided as the files param and passed separately
- *
- *
+ * if the media item needs to have files attached, they must be provided as the files param and passed separately
+ *
+ *
* ##usage
*
* mediaResource.getById(1234)
@@ -374,11 +374,11 @@ function mediaResource($q, $http, umbDataFormatter, umbRequestHelper) {
* alert("Retrieved, updated and saved again");
* });
* });
- *
- *
+ *
+ *
* @param {Object} media The media item object with changes applied
- * @param {Bool} isNew set to true to create a new item or to update an existing
- * @param {Array} files collection of files for the media item
+ * @param {Bool} isNew set to true to create a new item or to update an existing
+ * @param {Array} files collection of files for the media item
* @returns {Promise} resourcePromise object containing the saved media item.
*
*/
@@ -400,10 +400,10 @@ function mediaResource($q, $http, umbDataFormatter, umbRequestHelper) {
* .then(function(folder) {
* alert('New folder');
* });
- *
+ *
*
* @param {string} name Name of the folder to create
- * @param {int} parentId Id of the media item to create the folder underneath
+ * @param {int} parentId Id of the media item to create the folder underneath
* @returns {Promise} resourcePromise object.
*
*/
@@ -427,18 +427,19 @@ function mediaResource($q, $http, umbDataFormatter, umbRequestHelper) {
* Retrieves all media children with types used as folders.
* Uses the convention of looking for media items with mediaTypes ending in
* *Folder so will match "Folder", "bannerFolder", "secureFolder" etc,
- *
- * NOTE: This will return a max of 500 folders, if more is required it needs to be paged
- *
+ *
+ * NOTE: This will return a page of max 500 folders, if more is required it needs to be paged
+ * and then folders are in the .items property of the returned promise data
+ *
* ##usage
*
* mediaResource.getChildFolders(1234)
- * .then(function(data) {
+ * .then(function(page) {
* alert('folders');
* });
- *
+ *
*
- * @param {int} parentId Id of the media item to query for child folders
+ * @param {int} parentId Id of the media item to query for child folders
* @returns {Promise} resourcePromise object.
*
*/
@@ -454,9 +455,11 @@ function mediaResource($q, $http, umbDataFormatter, umbRequestHelper) {
"mediaApiBaseUrl",
"GetChildFolders",
{
- id: parentId
+ id: parentId,
+ pageNumber: 1,
+ pageSize: 500
})),
- 'Failed to retrieve child folders for media item ' + parentId);
+ 'Failed to retrieve child folders for media item ' + parentId);
},
/**
@@ -473,8 +476,8 @@ function mediaResource($q, $http, umbDataFormatter, umbRequestHelper) {
* .then(function() {
* alert('its empty!');
* });
- *
- *
+ *
+ *
* @returns {Promise} resourcePromise object.
*
*/
@@ -501,8 +504,8 @@ function mediaResource($q, $http, umbDataFormatter, umbRequestHelper) {
* .then(function(searchResult) {
* alert('it's here!');
* });
- *
- *
+ *
+ *
* @param {string} query The search query
* @param {int} pageNumber The page number
* @param {int} pageSize The number of media items on a page
@@ -513,7 +516,7 @@ function mediaResource($q, $http, umbDataFormatter, umbRequestHelper) {
search: function (query, pageNumber, pageSize, searchFrom) {
var args = [
- { "query": query },
+ { "query": query },
{ "pageNumber": pageNumber },
{ "pageSize": pageSize },
{ "searchFrom": searchFrom }
diff --git a/src/Umbraco.Web.UI.Client/src/common/resources/package.resource.js b/src/Umbraco.Web.UI.Client/src/common/resources/package.resource.js
index cb810c6edb..554134d017 100644
--- a/src/Umbraco.Web.UI.Client/src/common/resources/package.resource.js
+++ b/src/Umbraco.Web.UI.Client/src/common/resources/package.resource.js
@@ -57,7 +57,7 @@ function packageResource($q, $http, umbDataFormatter, umbRequestHelper) {
* @methodOf umbraco.resources.packageInstallResource
*
* @description
- * Downloads a package file from our.umbraco.org to the website server.
+ * Downloads a package file from our.umbraco.com to the website server.
*
* ##usage
*
diff --git a/src/Umbraco.Web.UI.Client/src/common/services/help.service.js b/src/Umbraco.Web.UI.Client/src/common/services/help.service.js
index 77621eee9c..1de992d9db 100644
--- a/src/Umbraco.Web.UI.Client/src/common/services/help.service.js
+++ b/src/Umbraco.Web.UI.Client/src/common/services/help.service.js
@@ -2,7 +2,7 @@ angular.module('umbraco.services')
.factory('helpService', function ($http, $q, umbRequestHelper) {
var helpTopics = {};
- var defaultUrl = "http://our.umbraco.org/rss/help";
+ var defaultUrl = "https://our.umbraco.com/rss/help";
var tvUrl = "http://umbraco.tv/feeds/help";
function getCachedHelp(url){
diff --git a/src/Umbraco.Web.UI.Client/src/common/services/listviewhelper.service.js b/src/Umbraco.Web.UI.Client/src/common/services/listviewhelper.service.js
index e4ba9b337c..42b739fe61 100644
--- a/src/Umbraco.Web.UI.Client/src/common/services/listviewhelper.service.js
+++ b/src/Umbraco.Web.UI.Client/src/common/services/listviewhelper.service.js
@@ -272,12 +272,19 @@
for (var i = 0; selection.length > i; i++) {
var selectedItem = selection[i];
// if item.id is 2147483647 (int.MaxValue) use item.key
- if ((item.id !== 2147483647 && item.id === selectedItem.id) || item.key === selectedItem.key) {
+ if ((item.id !== 2147483647 && item.id === selectedItem.id) || (item.key && item.key === selectedItem.key)) {
isSelected = true;
}
}
if (!isSelected) {
- selection.push({ id: item.id, key: item.key });
+ var obj = {
+ id: item.id
+ };
+ if (item.key) {
+ obj.key = item.key;
+ }
+
+ selection.push(obj);
item.selected = true;
}
}
@@ -298,7 +305,7 @@
for (var i = 0; selection.length > i; i++) {
var selectedItem = selection[i];
// if item.id is 2147483647 (int.MaxValue) use item.key
- if ((item.id !== 2147483647 && item.id === selectedItem.id) || item.key === selectedItem.key) {
+ if ((item.id !== 2147483647 && item.id === selectedItem.id) || (item.key && item.key === selectedItem.key)) {
selection.splice(i, 1);
item.selected = false;
}
@@ -368,9 +375,15 @@
for (var i = 0; i < items.length; i++) {
var item = items[i];
+ var obj = {
+ id: item.id
+ };
+ if (item.key) {
+ obj.key = item.key
+ }
if (checkbox.checked) {
- selection.push({ id: item.id, key: item.key });
+ selection.push(obj);
} else {
clearSelection = true;
}
@@ -410,7 +423,7 @@
var selectedItem = selection[selectedIndex];
// if item.id is 2147483647 (int.MaxValue) use item.key
- if ((item.id !== 2147483647 && item.id === selectedItem.id) || item.key === selectedItem.key) {
+ if ((item.id !== 2147483647 && item.id === selectedItem.id) || (item.key && item.key === selectedItem.key)) {
numberOfSelectedItem++;
}
}
diff --git a/src/Umbraco.Web.UI.Client/src/common/services/templatehelper.service.js b/src/Umbraco.Web.UI.Client/src/common/services/templatehelper.service.js
index 6fc20524e9..2e71ef0bf5 100644
--- a/src/Umbraco.Web.UI.Client/src/common/services/templatehelper.service.js
+++ b/src/Umbraco.Web.UI.Client/src/common/services/templatehelper.service.js
@@ -22,7 +22,8 @@
function getQuerySnippet(queryExpression) {
var code = "\n@{\n" + "\tvar selection = " + queryExpression + ";\n}\n";
code += "In order to run umbraco, you'll need to update your permission settings. Detailed information about the correct file & folder permissions for Umbraco can be found - here. + here.
The following report list the permissions that are currently failing. Once the permissions are fixed press the 'Go back' button to restart the installation. diff --git a/src/Umbraco.Web.UI.Client/src/installer/steps/starterkit.html b/src/Umbraco.Web.UI.Client/src/installer/steps/starterkit.html index 0b9e22a0f3..1ffbdb205b 100644 --- a/src/Umbraco.Web.UI.Client/src/installer/steps/starterkit.html +++ b/src/Umbraco.Web.UI.Client/src/installer/steps/starterkit.html @@ -12,7 +12,7 @@
- Restore {{currentNode.name}} under {{target.name}}? -
+
+
{{currentNode.name}} was moved underneath {{target.name}}
- +{{currentNode.name}}
The health checker evaluates various areas of your site for best practice settings, configuration, potential problems, etc. You can easily fix problems by pressing a button. - You can add your own health checks, have a look at the documentation for more information about custom health checks.
+ You can add your own health checks, have a look at the documentation for more information about custom health checks.This section contains the building blocks for your Umbraco site. Follow the below links to find out more about working with the items in the Settings section:
-
+
+
{{currentNode.name}}
#{{item.value}} - {{item.label}}#{{item.value}}{{item.label}}{{area.maxItems}}
@@ -95,15 +95,13 @@| + | ||||
|
+
| - | + | ||||||
| + |
|
+
| + | |||
|
+
| - | + | |||||||||||||||
| + |
|
| - | + | |||||||
| + |
|
+
To proceed, please edit the "web.config" file (using Visual Studio or your favourite text editor), scroll to the bottom, add the connection string for your database in the key named "UmbracoDbDSN" and save the file.
Click the retry button when
- done.
+ done.
More information on editing web.config here.
| + | ||||
|
+
| - | + | ||||||
| + |
|
+
| + | |||
|
+
| - | + | |||||||||||||||
| + |
|
| - | + | |||||||
| + |
|
+
Para continuar, edite el "web.config" (bien sea usando Visual Studio o su editor de texto preferido), vaya al final del archivo y añada la cadena de conexión para la base de datos con el nombre (key) "umbracoDbDSN" y guarde el archivo.
Pinche en reintentar cuando haya terminado.
Pinche aquí para mayor información de como editar el web.config (en inglés)
Para continuar, edite el "web.config" (bien sea usando Visual Studio o su editor de texto preferido), vaya al final del archivo y añada la cadena de conexión para la base de datos con el nombre (key) "umbracoDbDSN" y guarde el archivo.
Pinche en reintentar cuando haya terminado.
Pinche aquí para mayor información de como editar el web.config (en inglés)
Ningún contenido será borrado de la base de datos y seguirá funcionando después de la actualización
]]>Pour poursuivre, veuillez éditer le fichier "web.config" (avec Visual Studio ou votre éditeur de texte favori), scroller jusqu'en bas, ajouter le "connection string" pour votre base de données dans la ligne avec la clé "umbracoDbDSN" et sauvegarder le fichier.
Cliquez sur le bouton Réessayer lorsque cela est fait.
-
+
Plus d'informations sur l'édition du fichier web.config ici.
To proceed, please edit the "web.config" file (using Visual Studio or your favourite text editor), scroll to the bottom, add the connection string for your database in the key named "UmbracoDbDSN" and save the file.
Click the retry button when
- done.
+ done.
More information on editing web.config here.
Per procedere, edita il file "web.config" (utilizzando Visual Studio o l'editor di testo che preferisci), scorri in basso, aggiungi la stringa di connessione per il database chiamato "umbracoDbDSN" e salva il file.
Clicca il tasto riprova quando hai finito.
Maggiori dettagli per la modifica del file web.config qui.
Per procedere, edita il file "web.config" (utilizzando Visual Studio o l'editor di testo che preferisci), scorri in basso, aggiungi la stringa di connessione per il database chiamato "umbracoDbDSN" e salva il file.
Clicca il tasto riprova quando hai finito.
Maggiori dettagli per la modifica del file web.config qui.
Non preoccuparti, il contenuto non verrà perso e tutto continuerà a funzionare dopo l'aggiornamento!
]]>"web.config" 파일에 맨아래에 ,키네임을 "UmbracoDbDSN"로 하여 사용하시는 데이터베이스의 connection string 정보를 입력하시고 파일을 저장하세요.
- 완료 후재시도버튼을 누르세요.
+ 완료 후재시도버튼을 누르세요.
web.config의 더많은 정보는 여기에 있습니다.
Om door te gaan, gelieve het "web.config" bestand aan te passen (met behulp van Visual Studio of je favoriete tekstverwerker), scroll in het bestand naar beneden, voeg de connection string voor je database toe in de key met naam "umbracoDbDSN" en sla het bestand op.
Klik op de knop opnieuw proberen als je hiermee klaar bent.
Meer informatie over het aanpassen van de web.config vind je hier.
Om door te gaan, gelieve het "web.config" bestand aan te passen (met behulp van Visual Studio of je favoriete tekstverwerker), scroll in het bestand naar beneden, voeg de connection string voor je database toe in de key met naam "umbracoDbDSN" en sla het bestand op.
Klik op de knop opnieuw proberen als je hiermee klaar bent.
Meer informatie over het aanpassen van de web.config vind je hier.
Maak je geen zorgen - er zal geen inhoud worden gewist en alles blijft gewoon werken!
]]>
+
|
+
| + |
+
+
+ +
+ |
+ + |
Aby kontynuować, dokonaj edycji pliku "web.config" (używając Visual Studio lub dowolnego edytora tekstu), przemieść kursor na koniec pliku, dodaj parametry połączenia do Twojej bazy danych w kluczu o nazwie "umbracoDbDSN" i zapisz plik.
Kliknij ponów próbę kiedy
- skończysz.
+ skończysz.
Tu znajdziesz więcej informacji na temat edycji pliku "web.config".
Para prosseguir, favor editar o arquivo "web.config" (usando Visual Studio ou seu editor de texto favorito), role até embaixo, adicione a connection string para seu banco de dados com a chave de nome "UmbracoDbDSN" e salve o arquivo
-Clique o botão tentar novamente quando terminar. Clique o botão tentar novamente quando terminar.
+
Mais informações em como editar o web.config aqui.
Для настройки откройте файл "web.config" с помощью любого текстового редактора и добавьте нужную информацию в строку подключения (параметр "UmbracoDbDSN"), затем сохраните файл.
Нажмите кнопку "Повторить" когда все будет готово
- Более подробно о внесении изменений в файл "web.config" рассказано здесь.
För att fortsätta måste du redigera filen "web.config" (du kan använda Visual Studio eller din favorit text-redigerare), bläddra till slutet, lägg till databasanslutnings-inställningarna för din databas i fältet som heter "umbracoDbDSN" och spara filen.
Klicka på Försök igen knappen när du är klar.
> Mer information om att redigera web.config hittar du här.
För att fortsätta måste du redigera filen "web.config" (du kan använda Visual Studio eller din favorit text-redigerare), bläddra till slutet, lägg till databasanslutnings-inställningarna för din databas i fältet som heter "umbracoDbDSN" och spara filen.
Klicka på Försök igen knappen när du är klar.
> Mer information om att redigera web.config hittar du här.
Du behöver inte vara orolig. Inget innehåll kommer att raderas och efteråt kommer allt att fungera som vanligt!
]]>
Tekrar dene.
-
+
Burada düzenleme web.config Hakkında Daha Fazla Bilgi.
您可以自行编辑“web.config”文件,键名为 “UmbracoDbDSN”
- 当自行编辑后,单击重试按钮
。
+ 当自行编辑后,单击重试按钮
。
如何编辑web.config
<asp:content /> element.]]>For å fortsette, vennligst rediger "web.config"-filen (bruk Visual Studio eller din favoritteditor), rull ned til bunnen, og legg til tilkoblingsstrengen for din database i nøkkelen "umbracoDbDSN" og lagre filen.
Klikk prøv på nytt når du er ferdig.
Mer informasjon om redigering av web.config her.
Ikke vær urolig - intet innhold vil bli slettet og alt vil fortsette å virke etterpå!
]]>Ingen videre handling er nødvendig. Klikk neste for å fortsette.]]>
Ingen videre handling er nødvendig. Klikk Neste for å fortsette.]]>
Dette er en automatisk mail for å informere om at handlingen '%1%' + er blitt utført på siden '%2%' + av brukeren '%3%' +
+ ++
Ha en fin dag!
+ Vennlig hilsen Umbraco roboten
+
<asp:content /> 裡面。]]>請編輯檔案"web.config" (例如使用Visual Studio或您喜歡的編輯器),移動到檔案底部,並在名稱為"UmbracoDbDSN"的字串中設定資料庫連結資訊,並存檔。
+
+ 點選重試按鈕當上述步驟完成。
+
+ 在此查詢更多編輯web.config的資訊。
+ 請別擔心 - 不會刪除任何資料而且馬上就會繼續運作! +
+ ]]>不需更多的操作步驟。點選下一步繼續。]]>
不需更多的操作步驟。點選下一步繼續。]]>
點選這裡來重設您的密碼或將此連結複製/貼上到您的瀏覽器:
%1%
]]>這是一封自動產生的信件來通知您 %1% 工作 + 已經在頁面 %2% 上由使用者 %3% 執行完成 +
+ ++
祝您有美好的一天!
+ Umbraco機器人 謹上
+
| + Remember: .ascx files for your macros + will be added automaticly, but you will still need to add assemblies, + images and script files manually to the list below. + | +
| + Absolute path to file (ie: /bin/umbraco.bin) + | ++ |
|
+ |
+
+ |
+
|
+ |
+
+ |
+
| + Load control after installation (ex: /usercontrols/installer.ascx) + | +
|
+ |
+
|
+
+ Here you can add custom installer / uninstaller events to perform certain tasks
+ during installation and uninstallation.
+ |
+
| + Actions: + | +
|
+ |
+
- ]]>
-
-
- ]]>
-
-
- ]]>
-
-
- ]]>
-
-
- ]]>
-
-
- ]]>
-
- ]]>
-
- ]]>
-
- ]]>
-
- ]]>
-
- ]]>
-
-
-
-
-
-
- ]]>
-
- ]]>
-
-
- ]]>
-
-
- ]]>
-
- ]]>
-
- ]]>
-
- Upload all the files in an ItemGroup:
- '%(RecursiveDir)%(Filename)%(Extension)')" />
- ]]>
-
- ]]>
-
-
-
-
-
- ]]>
- If the directory exists on the server you should see the following output in the console:
-
-
- ]]>
- To go a little step further. If the local directory looked like this:
-
- [mywebsite]
- [images]
- 1.gif
- 2.gif
- 3.gif
- [js]
- clientscript.js
- nofocus.js
- [css]
- print.css
- main.css
- index.htm
- contact.htm
- downloads.htm
-
- All directories and there content will be uploaded and a excact copy of the content of
- ]]>
-
- ]]>
-
- ]]>
-
-
-
- \G[^<]+
- RegexOptions.Singleline | RegexOptions.Multiline
-
-
- \G<%--(([^-]*)-)*?-%>
- RegexOptions.Singleline | RegexOptions.Multiline
-
-
- \G<%(?![@%])(?<code>.*?)%>
- RegexOptions.Singleline | RegexOptions.Multiline
- MSBuild.Community.RegularExpressions
-
-
-
-
-
-
-]]>
-
-
- ]]>
-
- ]]>
-
- ]]>
- ]]>
-
- ]]>
-
-
- ]]>
-
- ]]>
-
-
- ]]>
-
- ]]>
-
- ]]>
-
-
-
- ]]>
-
-
-
-
-
-
- ]]>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ]]>
-
-
- ]]>
-
- The
-
-
-
-
-
-
- ]]>
-
-
-
-
-
-
-
-
-
-
- ]]>
-
-
- ]]>
-
- Using a changes.xml file with the following contents:
-
-
-
-
-
-
- ]]>
-
-
-
-
-
-
-
- ]]>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ]]>
-
- You could use the following task definition, which relies on a property "TargetEnvironment" to determine which set of changes to apply:
-
- ]]>
-
- You will need to provide a value of "test" or "prod" to the TargetEnvironment property. The property can be defined in a PropertyGroup section of the MSBuild file, or passed as a command-line parameter.
-
-
-
-
-
-
-/>]]>
-
-
- ]]>
-
- ]]>
-
-
-
-
- ]]>
-
-
- ]]>
-
- $(testDir)\ilmergetest.dll
- $(testDir)\keypair.snk
- $(testDir)\ExcludeTypes.txt
- $(testDir)\ilmergetest.log
-
-
-
-
-
-
-
-
- ]]>
-
-
-]]>
-
-
-
-]]>
-
-
-
-
-
-
-]]>
-
-
- ]]>
-
- ]]>
-
-
-
-
-
-]]>
-
- Above example will display:
- 12 modulo 4 = 0
-
-
-
-
-
-]]>
-
- Above example will display:
- 14 modulo 4 = 2
-
-
-
-
-
-]]>
-
- Above example will display:
- 12 modulo 3.5 = 1.5
-
-
-
- ]]>
-
-
-
-
- ]]>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ]]>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ]]>
-
- ]]>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ]]>
-
- Server=localhost;Integrated Security=True
-
-
-
-
-
- ]]>
-
-
-
-
-
-
- ]]>
-
-
- MSBuild Community Tasks
-
-
-
-
- ]]>
-
-
-
-
-
-
-
-
- ]]>
- Set property "BuildDate" to the current date and time:
-
-
- ]]>
-
-
-
-
-
-
-
-
-
-
-]]>
-
-
-
-
-
-
-
-
-]]>
-
-
-
-
-
-
-
-
-
-
-
-]]>
-
-
-
-/>]]>
-
- ]]>
- the
- The xml files of parameter
- If only one input file is provided,
- merging and wrapping can be omitted
- by setting
- The root tag can be given any number of attributes
- by providing a list of semicolon-delimited name/value pairs
- to parameter RootAttributes="foo=bar;date=$(buildDate)"
-
- Parameter RootAttributes=""
- must be specified explicitely.
-
- The xsl transformation file
- specified by parameter
- The
- If only one input file is given with
- The output is written to the file
- specified by parameter
-
-
- $(project)
- $(configuration)
- $(MSBuildProjectFullPath)
- $(MSBuildBinPath)
- $(MSBuildCommunityTasksPath)\$(nunitReportXsl)
-
-
-
-
-
- ]]>
-
-
- This examples shows all available task attributes:
-
-
-
-
-
- ]]>
-
- RootAttributes="foo=bar;date=$(buildDate)"
-
- ]]>
-
- ]]>
-
- ]]>
-
-
-
-
- ]]>
-
- ]]>
-
- ]]>
-
- ]]>
-
- ]]>
-
- ]]>
-
-
-
- ]]>
-
-
-
-
- ]]>
-
-
-
-
-
-]]>
-
- Above example will display:
- Divide 1/2= 0.5
-
-
-
-
-
-]]>
-
- Above example will display:
- Divide 7/3= 2
-
-
-
-
- ]]>
-
-
-
-
- ]]>
-
- ]]>
-
- ]]>
-
- ]]>
-
-
-
-
-
-
- ]]>
-
-
-
-
- ]]>
-
- ]]>
-
-
-
-
-
-
-
-
-
-]]>
-
-
-
-
-
-
-
-
-
-
-
-]]>
-
-
- ]]>
-
- ]]>
-
- Example of returning the items of a table in an xml format.
-
- ]]>
-
-
-
-
-
-
-
- ]]>
-
-
-
-
-
-
-
-
- ]]>
-
-
-
-
-
-
- ]]>
-
- ]]>
-
-
-
-
-
-
-
- ]]>
-
-
-
-
-
-
-
- ]]>
-
- ]]>
-
- ]]>
-
- ]]>
-
-
-
-
- ]]>
-
- ]]>
-
-
-
-
-
-
- ]]>
- Create a zip file using a working directory.
-
-
-
-
-
-
- ]]>
-
- list = new List();
- list.Add("Happy");
- list.Add("New");
- list.Add("Year");
- Console.WriteLine("Hello MSBuild Community Scripting World.");
- foreach(string s in list)
- {
- Console.WriteLine(s);
- }
- }
- ]]>
-
-