Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | 781x 781x 44002x 44002x 44002x 44002x 44002x 44002x 3344x 3344x 3344x 3344x 3344x | /* global define */
define(['underscore', 'oro/datagrid/abstract-action'],
function(_, AbstractAction) {
'use strict';
/**
* Basic model action class.
*
* @export oro/datagrid/model-action
* @class oro.datagrid.ModelAction
* @extends oro.datagrid.AbstractAction
*/
return AbstractAction.extend({
/** @property {Backbone.Model} */
model: null,
/** @property {String} */
link: undefined,
/** @property {Boolean} */
backUrl: false,
/** @property {String} */
backUrlParameter: 'back',
/**
* Initialize view
*
* @param {Object} options
* @param {Backbone.Model} options.model Optional parameter
* @throws {TypeError} If model is undefined
*/
initialize: function(options) {
options = options || {};
Iif (!options.model) {
throw new TypeError("'model' is required");
}
this.model = options.model;
Iif (_.has(options, 'backUrl')) {
this.backUrl = options.backUrl;
}
Iif (_.has(options, 'backUrlParameter')) {
this.backUrlParameter = options.backUrlParameter;
}
AbstractAction.prototype.initialize.apply(this, arguments);
},
/**
* Get action link
*
* @return {String}
* @throws {TypeError} If route is undefined
*/
getLink: function() {
Iif (!this.link) {
throw new TypeError("'link' is required");
}
var result;
Eif (this.model.has(this.link)) {
result = this.model.get(this.link);
} else {
result = this.link;
}
Iif (this.backUrl) {
var backUrl = _.isBoolean(this.backUrl) ? window.location.href : this.backUrl;
backUrl = encodeURIComponent(backUrl);
result = this.addUrlParameter(result, this.backUrlParameter, backUrl);
}
return result;
},
/**
* Add parameter to URL
*
* @param {String} url
* @param {String} parameterName
* @param {String} parameterValue
* @return {String}
* @protected
*/
addUrlParameter: function(url, parameterName, parameterValue) {
var urlhash, sourceUrl, replaceDuplicates = true;
if(url.indexOf('#') > 0){
var cl = url.indexOf('#');
urlhash = url.substring(url.indexOf('#'),url.length);
} else {
urlhash = '';
cl = url.length;
}
sourceUrl = url.substring(0,cl);
var urlParts = sourceUrl.split("?");
var newQueryString = "";
if (urlParts.length > 1) {
var parameters = urlParts[1].split("&");
for (var i=0; (i < parameters.length); i++)
{
var parameterParts = parameters[i].split("=");
if (!(replaceDuplicates && parameterParts[0] == parameterName))
{
if (newQueryString == "")
newQueryString = "?";
else
newQueryString += "&";
newQueryString += parameterParts[0] + "=" + (parameterParts[1] ? parameterParts[1] : '');
}
}
}
if (newQueryString == "") {
newQueryString = "?";
}
if (newQueryString !== "" && newQueryString != '?') {
newQueryString += "&";
}
newQueryString += parameterName + "=" + (parameterValue ? parameterValue : '');
return urlParts[0] + newQueryString + urlhash;
}
});
});
|