126 lines
3.1 KiB
JavaScript
126 lines
3.1 KiB
JavaScript
/**
|
|
* This model is used by admin/about.blade.php, to perform a version check against Github.
|
|
* @constructor
|
|
*/
|
|
function AboutViewModel(urls) {
|
|
this.el = '#about-app';
|
|
|
|
this.data = {
|
|
can_upgrade: false,
|
|
is_loading: true,
|
|
version_body: '',
|
|
version_date: '',
|
|
version_name: '',
|
|
version_url: ''
|
|
};
|
|
|
|
this.computed = {
|
|
};
|
|
|
|
this.methods = {
|
|
init: function () {
|
|
var self = this;
|
|
|
|
$.ajax(
|
|
urls.latest_release_url,
|
|
{
|
|
complete: function() {
|
|
self.is_loading = false;
|
|
},
|
|
dataType: 'json',
|
|
error: function (xhr, textStatus, errorThrown) {
|
|
},
|
|
method: 'GET',
|
|
success: function (data) {
|
|
self.version_body = data.body;
|
|
self.version_date = data.publish_date;
|
|
self.version_name = data.name;
|
|
self.version_url = data.url;
|
|
|
|
// Set this last so any watchers on this property execute after all version data has been set
|
|
self.can_upgrade = data.can_upgrade;
|
|
}
|
|
}
|
|
);
|
|
}
|
|
};
|
|
}
|
|
|
|
/**
|
|
* This model is used by admin/create_album.blade.php.
|
|
* @constructor
|
|
*/
|
|
function CreateAlbumViewModel() {
|
|
this.el = '#create-album-app';
|
|
|
|
this.data = {
|
|
is_inherit_permissions: true,
|
|
is_private: false,
|
|
parent_id: ''
|
|
};
|
|
|
|
this.computed = {
|
|
isParentAlbum: function() {
|
|
return this.parent_id == '';
|
|
},
|
|
isPrivateDisabled: function() {
|
|
return !this.isParentAlbum && this.is_inherit_permissions;
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* This model is used by admin/edit_album.blade.php.
|
|
* @constructor
|
|
*/
|
|
function EditAlbumViewModel() {
|
|
this.el = '#edit-album-app';
|
|
|
|
this.data = {
|
|
parent_id: ''
|
|
};
|
|
|
|
this.computed = {
|
|
isParentAlbum: function() {
|
|
return this.parent_id == '';
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* This model is used by admin/settings.blade.php.
|
|
* @constructor
|
|
*/
|
|
function SettingsViewModel(urls, lang) {
|
|
this.el = '#settings-app';
|
|
|
|
this.data = {
|
|
is_rebuilding_permissions_cache: false
|
|
};
|
|
|
|
this.methods = {
|
|
rebuildPermissionsCache: function (e) {
|
|
var self = this;
|
|
|
|
$.ajax(
|
|
urls.rebuild_permissions_cache,
|
|
{
|
|
complete: function() {
|
|
self.is_rebuilding_permissions_cache = false;
|
|
},
|
|
dataType: 'json',
|
|
error: function (xhr, textStatus, errorThrown) {
|
|
alert(lang.permissions_cache_rebuild_failed);
|
|
},
|
|
method: 'POST',
|
|
success: function (data) {
|
|
alert(lang.permissions_cache_rebuild_succeeded);
|
|
}
|
|
}
|
|
);
|
|
|
|
e.preventDefault();
|
|
return false;
|
|
}
|
|
};
|
|
} |