Publish Vulpes Preview 15 sources for desktop, Android and Tundra
Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
This commit is contained in:
parent
93e3a48004
commit
b38dea0597
25901 changed files with 9982925 additions and 369 deletions
31
gaia/apps/settings/js/panels/achievements/achievements_list.js
Executable file
31
gaia/apps/settings/js/panels/achievements/achievements_list.js
Executable file
|
|
@ -0,0 +1,31 @@
|
|||
/**
|
||||
* UI for Achievements panel's functionality.
|
||||
*/
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var ListView = require('modules/mvvm/list_view');
|
||||
var ObservableArray = require('modules/mvvm/observable_array');
|
||||
var AchievementsTemplate = require(
|
||||
'panels/achievements/achievements_template');
|
||||
|
||||
function AchievementsList(root) {
|
||||
this._achievements = ObservableArray([]);
|
||||
this._listView = ListView(root, this._achievements, AchievementsTemplate);
|
||||
}
|
||||
|
||||
AchievementsList.prototype = {
|
||||
get achievements() {
|
||||
return this._achievements.array;
|
||||
},
|
||||
|
||||
set achievements(achievements) {
|
||||
achievements = achievements || [];
|
||||
this._achievements.reset(achievements);
|
||||
}
|
||||
};
|
||||
|
||||
return function ctor_achievements_list(panel) {
|
||||
return new AchievementsList(panel);
|
||||
};
|
||||
});
|
||||
54
gaia/apps/settings/js/panels/achievements/achievements_template.js
Executable file
54
gaia/apps/settings/js/panels/achievements/achievements_template.js
Executable file
|
|
@ -0,0 +1,54 @@
|
|||
/**
|
||||
* The template function for generating an UI element for an Addon item.
|
||||
*
|
||||
* @module achievements/achievements_template
|
||||
*/
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
return function achievementsTemplate(achievement, recycled) {
|
||||
var container, span, small, icon, details;
|
||||
var name = achievement.criteria.split('achievements/')[1];
|
||||
|
||||
if (recycled) {
|
||||
container = recycled;
|
||||
details = container.querySelector('span');
|
||||
span = details.querySelector('span');
|
||||
small = details.querySelector('small');
|
||||
icon = container.querySelector('img');
|
||||
} else {
|
||||
container = document.createElement('li');
|
||||
details = document.createElement('span');
|
||||
span = document.createElement('span');
|
||||
small = document.createElement('small');
|
||||
icon = document.createElement('img');
|
||||
|
||||
container.classList.add('achievements-item');
|
||||
details.classList.add('details');
|
||||
details.setAttribute('role', 'presentation');
|
||||
small.classList.add('description');
|
||||
icon.classList.add('icon');
|
||||
icon.setAttribute('aria-hidden', true);
|
||||
|
||||
container.appendChild(icon);
|
||||
details.appendChild(span);
|
||||
details.appendChild(small);
|
||||
container.appendChild(details);
|
||||
}
|
||||
|
||||
icon.src = `../style/images/achievements/${name}.png`;
|
||||
|
||||
span.setAttribute('data-l10n-id', `achievements-${name}-name`);
|
||||
small.setAttribute('data-l10n-id', `achievements-${name}-description`);
|
||||
|
||||
if (achievement.evidence) {
|
||||
container.classList.add('rewarded');
|
||||
container.removeAttribute('aria-disabled');
|
||||
} else {
|
||||
container.classList.remove('rewarded');
|
||||
container.setAttribute('aria-disabled', true);
|
||||
}
|
||||
|
||||
return container;
|
||||
};
|
||||
});
|
||||
28
gaia/apps/settings/js/panels/achievements/panel.js
Executable file
28
gaia/apps/settings/js/panels/achievements/panel.js
Executable file
|
|
@ -0,0 +1,28 @@
|
|||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var SettingsPanel = require('modules/settings_panel');
|
||||
var AchievementsList = require('panels/achievements/achievements_list');
|
||||
var SettingsListener = require('shared/settings_listener');
|
||||
|
||||
return function ctor_achievements_panel() {
|
||||
var achievementsList;
|
||||
var update = achievements => achievementsList.achievements = achievements;
|
||||
|
||||
return SettingsPanel({
|
||||
onInit: function(panel) {
|
||||
var listElement = panel.querySelector('.achievements-list');
|
||||
achievementsList = AchievementsList(listElement);
|
||||
},
|
||||
|
||||
onBeforeShow: function() {
|
||||
SettingsListener.observe(
|
||||
'achievements', achievementsList.achievements, update);
|
||||
},
|
||||
|
||||
onHide: function() {
|
||||
SettingsListener.unobserve('achievements', update);
|
||||
}
|
||||
});
|
||||
};
|
||||
});
|
||||
Loading…
Reference in a new issue